您好,登錄后才能下訂單哦!
這篇文章主要講解了java中基于UDP的聊天程序的實現,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。
基于UDP的Socket通信
UDP協議不是一種基于穩定連接的協議,是一種面向數據報包的通信協議,不需要通信雙方建立穩定的連接,也沒有所謂服務端和客戶的概念,數據報包在傳輸的時候不保證一定及時到達,也不能保證數據報包的到達順序,但是UDP協議傳輸效率要遠高于TCP/IP。
以下是一個基于UDP的簡單的消息發送接收程序。
消息發送方
1.創建一個數據報的網絡通道
DatagramSocket ds = new DatagramSocket();
2.準備需要傳輸的數據
String msg = "天王蓋地虎,小雞燉蘑菇!!!";
3.將需要發送的數據打包成數據報包
DatagramPacket packet = new DatagramPacket( msg.getBytes(), //需要被發送的數據的字節數組 msg.getBytes().length, //發送的數據長度(字節數組長度) InetAddress.getByName("localhost"), //接收方的ip 1025 //接收方的端口 );
4.發送數據報包
ds.send(packet);
5.關閉通道
ds.close();
消息接收方
1.創建一個數據報的網絡通道,綁定到指定端口
DatagramSocket ds = new DatagramSocket(1025);
2.聲明字節數組,用于存儲接收的數據
byte[] b = new byte[1024];
3.準備數據報包(空包)
DatagramPacket packet = new DatagramPacket(b, b.length);
4.接收數據到數據報包中
ds.receive(packet);
5.將數據解析為字符串并輸出
//接受到的數據(字節數組)實際長度 int len = packet.getLength(); //將字節數組轉換為字符串 String s = new String(b, 0, len); System.out.println("收到的消息:"+s);
如要進行循環接收,則將第4、第5步進行無限循環。
看完上述內容,是不是對java中基于UDP的聊天程序的實現有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。