日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java网络编程 个人心得

發(fā)布時(shí)間:2023/12/4 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java网络编程 个人心得 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

TCP協(xié)議是一個(gè)有連接可靠地協(xié)議。 TCP編程的核心思路 開(kāi)發(fā)服務(wù)器端 ServerSocket ss=new ServerSocket(9000) ss.accept(); ?
?
? publicclassTcpServer { ??????publicstaticvoidmain(String[] args) { ????????????try{ ?????????????????? ???????????????????ServerSocket?ss=newServerSocket?(9000);//創(chuàng)建SocketServer對(duì)象,并綁定端口 ??????????????????Socket s=ss.accept(); ??????????????????BufferedReader br=newBufferedReader(newInputStreamReader(s.getInputStream()));//調(diào)用getInputStream方法,進(jìn)行I/O操作 ??????????????????String str=br.readLine(); ??????????????????System.out.println("接收的數(shù)據(jù)為:"+str); ??????????????????s.close(); ?????????????????? ????????????}catch(IOException e) { ?????????????????? ??????????????????e.printStackTrace(); ?????????????????? ????????????}
??????}
}
public?class?TcpServer02 { ?????????????public?static?void?main(String[] args) { ???????????????????try?{ ???????????????????????? ????????????????????????ServerSocket ss=?new?ServerSocket(9000);//創(chuàng)建SocketServer對(duì)象,并綁定端口 ????????????????????????Socket s=ss.accept(); ????????????????????????BufferedReader br=?new?BufferedReader(new?InputStreamReader(s.getInputStream()));//調(diào)用getInputStream方法,進(jìn)行I/O操作 ????????????????????????String?str=br.readLine(); ????????????????????????System.?out.println("接收的數(shù)據(jù)為:"?+str?); ???????????????????????? ???????????????????????? ????????????????????????PrintWriter pw=?new?PrintWriter(s.getOutputStream()); ????????????????????????pw.println(?str+"from Server"); ????????????????????????pw.flush(); ????????????????????????s.close();
???????????????????????? ??????????????????}?catch?(IOException e) { ???????????????????????? ????????????????????????e.printStackTrace(); ???????????????????????? ??????????????????}
????????????}
??????}
? ? 開(kāi)發(fā)客戶端 ? ? ?Socket s=new Socket("150.236.56.101",9000);

public?class?TcpClient { ???????public?static?void?main(String[] args) { ?????????????try?{ ??????????????????Socket s=?new?Socket("localhost"?,9000);//創(chuàng)建Socket對(duì)象,并連接服務(wù)器 ??????????????????PrintWriter pw=?new?PrintWriter(s.getOutputStream());//調(diào)用getOutputStream方法,進(jìn)行I/O操作 ??????????????????pw.println(?"Hello world!"); ??????????????????pw.flush();?//將緩沖區(qū)里的數(shù)據(jù)向外發(fā)出 ??????????????????s.close(); ????????????}?catch?(UnknownHostException e) { ??????????????????e.printStackTrace(); ????????????}?catch?(IOException e) { ??????????????????e.printStackTrace(); ????????????} ???????????? ??????} ??????
}

public?class?TcpClient02 {
???????public?static?void?main(String[] args) { ?????????????try?{ ??????????????????Socket s=?new?Socket("localhost"?,9000);//創(chuàng)建Socket對(duì)象,并連接服務(wù)器 ??????????????????PrintWriter pw=?new?PrintWriter(s.getOutputStream());//調(diào)用getOutputStream方法,進(jìn)行I/O操作 ??????????????????pw.println(?"Hello world!"); ??????????????????pw.flush();?//將緩沖區(qū)里的數(shù)據(jù)向外發(fā)出 ?????????????????? ??????????????????BufferedReader br=?new?BufferedReader(new?InputStreamReader(s.getInputStream())); ??????????????????String str=br.readLine(); ??????????????????System.?out.println("接收服務(wù)器返回信息:"?+str); ??????????????????s.close(); ????????????}?catch?(UnknownHostException e) { ??????????????????e.printStackTrace(); ????????????}?catch?(IOException e) { ??????????????????e.printStackTrace(); ????????????} ???????????? ??????} }
? 以上程序存在的問(wèn)題,服務(wù)器只能運(yùn)行一次 while(true){ 調(diào)用accept()方法 調(diào)用getXXXStream方法,進(jìn)行I/O操作 關(guān)閉Socket } 像以上那樣加入一個(gè)死循環(huán),也不能達(dá)到目的,所以此時(shí)可以運(yùn)用線程來(lái)操作
?
?
? publicclassServerThread?extendsThread{ ??????Sockets; ??????publicServerThread(Socket s) { ????????????this.s=s; ??????} ?????? ??????publicvoidrun() {//實(shí)現(xiàn)run()方法 ????????????try{ ??????????????????BufferedReader br=newBufferedReader(newInputStreamReader(s.getInputStream()));//調(diào)用getInputStream方法,進(jìn)行I/O操作 ??????????????????String str=br.readLine(); ??????????????????System.out.println("接收的數(shù)據(jù)為:"+str); ?????????????????? ?????????????????? ??????????????????PrintWriter pw=newPrintWriter(s.getOutputStream()); ??????????????????pw.println(str+"from Server"); ??????????????????pw.flush();
?????????????????? ????????????}catch(IOException e) { ?????????????????? ??????????????????e.printStackTrace(); ?????????????????? ????????????}finally{ ????????????????????????try{ ??????????????????????????????s.close(); ????????????????????????}catch(IOException?e) { ???????????????????????????????e.printStackTrace(); ????????????????????????} ?????????????????? ????????????} ??????}
}

public?class?TcpServer03 {

???????public?static?void?main(String[] args)?throws?IOException { ????????????ServerSocket ss=?new?ServerSocket(9000); ?????????????while(true?){ ??????????????????Socket?s=ss.accept(); ??????????????????Thread st=?new?ServerThread(s); ??????????????????st.start(); ????????????}
??????}
}

UDP:無(wú)連接,不可靠(應(yīng)用:網(wǎng)絡(luò)視頻聊天)
UDP編程 java.net.DatagramSocket java.net.DatagramPacket
UDP編程的核心思路 服務(wù)器 DatagramSocket socket=new DatagramSocket(9000) 客戶端 DatagramSocket socket=new DatagramSocket()
DatagramPacket DatagramPacket(byte[] buf,int,length) DatagramPacket(byte[] buf,int,length,SocketAddress) getAddress()/getSockAddress()/getPort()/getLength() setAddress()/setSockAddress()/setPort()/setLength()


public?class?UdpClient {
?????? ???????public?static?void?main(String[] args)?throws?IOException { ????????????DatagramSocket socket=?new?DatagramSocket(); ????????????String str=?"Hello World!"; ?????????????byte[] buf=str.getBytes(); ????????????DatagramPacket packet=?new?DatagramPacket(buf,0,buf.length?,new?InetSocketAddress("localhost"?,9000)); ????????????socket.send(packet); ????????????socket.close();
??????}
}
public?class?UdpServer {

???????public?static?void?main(String[] args)?throws?IOException { ????????????DatagramSocket socket=?new?DatagramSocket(9000); ?????????????byte[] buf=new?byte[100]; ????????????DatagramPacket paper=?new?DatagramPacket(buf,0,buf.length?); ????????????socket.receive(paper); ????????????String?str=new?String(buf,0,paper.getLength()); ????????????System.?out.println(str); ????????????socket.close(); ??????}
}




URL概念(統(tǒng)一資源定位符
URL組成 ?????協(xié)議名://主機(jī)名(或者IP地址):端口號(hào)/資源 ?如:http://localhost:8080/web/a.jpg;
URL編程 ?URL ?URLConnection
public?class?URLTest {

???????public?static?void?main(String[] args)?throws?IOException { ????????????URL url=?new?URL("http://www.Oracle.com"?); ????????????URLConnection conn=url.openConnection(); ????????????InputStream in=conn.getInputStream(); ????????????BufferedReader br=?new?BufferedReader(new?InputStreamReader(in)); ????????????String line=?null; ?????????????while((line=br.readLine())!=null){ ??????????????????System.?out.println(line); ????????????} ????????????br.close();
??????}
}































?

?

轉(zhuǎn)載于:https://blog.51cto.com/5028233/857026

總結(jié)

以上是生活随笔為你收集整理的java网络编程 个人心得的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。