socket編程 udp和tcp 通信示例

socket編程 udp和tcp 通信示例

ID:1328451

大?。?61.41 KB

頁數(shù):7頁

時間:2017-11-10

socket編程 udp和tcp 通信示例_第1頁
socket編程 udp和tcp 通信示例_第2頁
socket編程 udp和tcp 通信示例_第3頁
socket編程 udp和tcp 通信示例_第4頁
socket編程 udp和tcp 通信示例_第5頁
資源描述:

《socket編程 udp和tcp 通信示例》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。

1、android?開發(fā)之socket編程?UDP和TCP通信實現(xiàn)原理圖應用程序通過套接字通信,其協(xié)議如下:UDP:把數(shù)據(jù)打包后直接發(fā)送給相應的IP,數(shù)據(jù)大小有限制,連接不可靠。TCP:服務器與客戶端協(xié)議必須匹配,即都是用TCP協(xié)議,先建立連接,再發(fā)送數(shù)據(jù),其連接可靠。通信方式如下圖所示:代碼示例UDP通信:UDP使用DatagramSocket對象實現(xiàn)數(shù)據(jù)交互??蛻舳丝蛻舳耸纠a如下:importjava.net.DatagramPacket;importjava.net.DatagramSocket;importjava.net.InetAddress;pub

2、licclassClient{publicstaticvoidmain(String[]args){try{//創(chuàng)建一個DatagramSocket對象,不要有端口號,否則設置的端口被本類獨占。DatagramSocketsocket=newDatagramSocket();//創(chuàng)建一個InetAddressInetAddressserverAddress=InetAddress.getByName("127.0.0.1");//創(chuàng)建傳輸字符串Stringstr="hello";//轉換成字節(jié)數(shù)組bytedata[]=str.getBytes();//創(chuàng)建以供D

3、atagramPacket對象,指定其發(fā)送地址和端口號DatagramPacketpacket=newDatagramPacket(data,data.length,serverAddress,4567);//調用socket對象的send()方法發(fā)送數(shù)據(jù)socket.send(packet);}catch(Exceptione){e.printStackTrace();}}}服務器端服務器示例代碼如下:importjava.io.IOException;importjava.net.DatagramPacket;importjava.net.DatagramS

4、ocket;importjava.net.SocketException;publicclassServer{publicstaticvoidmain(String[]args){//創(chuàng)建一個DatagramSocket對象,指定端口為4567try{DatagramSocketsocket=newDatagramSocket(4567);bytedata[]=newbyte[1024];//創(chuàng)建一個空DatagramPacket對象DatagramPacketpacket=newDatagramPacket(data,data.length);//使用rece

5、iver方法接手客戶端所發(fā)送到數(shù)據(jù),如果客戶端沒有發(fā)送數(shù)據(jù),進程阻塞socket.receive(packet);Stringresult=newString(packet.getData(),packet.getOffset(),packet.getLength());System.out.println("result-------->"+result);}catch(SocketExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}}}運行結果:PS:Window

6、s下查看端口:netstat-n-a

7、find"4567"TCP通信:TCP通信需先建立連接,然后進行數(shù)據(jù)通信??蛻舳薸mportjava.io.FileInputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjava.net.Socket;importjava.net.UnknownHostException;publicclassClient{publicstaticvoidmain(String[]args){try{/

8、/創(chuàng)建一個Socket對象,指定服務器端的IP地址和端口號Socketsocket=newSocket("127.0.0.1",4567);//使用InputStream讀取硬盤上的文件InputStreaminputStream=newFileInputStream("D:\aa.txt");//從Socket當中得到OutputStreamOutputStreamoutputStream=socket.getOutputStream();byte[]buffer=newbyte[4*1024];inttemp=0;//將InputStream當中的數(shù)據(jù)取出

9、,并寫入到OutputS

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。