您好,登錄后才能下訂單哦!
小編給大家分享一下java如何實現基于UDP協議的聊天小程序,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
UDP(User Data Protocol,用戶數據報協議)是與TCP相對應的協議。它是面向非連接的協議,它不與對方建立連接,而是直接就把數據包發送過去!
UDP適用于一次只傳送少量數據、對可靠性要求不高的應用環境。正因為UDP協議沒有連接的過程,所以它的通信效率高;但也正因為如此,它的可靠性不如TCP協議高。QQ就使用UDP發消息,因此有時會出現收不到消息的情況。
利用UDP協議的發送和接收,模擬聊天小程序
1、發送信息到接收端
1 、準備發送的信息【鍵盤錄入】
2 、指定接受端的 ip
3 、指定接收端的端口
4 、打包【創建 DatagramPacket 的對象】
5 、發送【創建 DatagramSocket 的對象】
2、接收接收回復的信息
1 、準備接收使用字節數組
2 、把數組封裝為數據報包【創建 DatagramPacket 的對象】
3 、接收數據
4 、解析報包有效數據
3 、上述操作循環操作
1、接收發送端的信息
1 、準備接收使用字節數組
2 、把數組封裝為數據報包【創建 DatagramPacket 的對象】
3 、接收數據【創建 DatagramSocket 的對象】
4 、解析報包有效數據
2、回復發送端的信息
1 、準備發送的信息【鍵盤錄入】
2 、指定發送的 ip 【解析接收的報包的 ip 即可】
3 、指定接收端的端口【解析接收的報包的端口即可】
4 、打包【創建 DatagramPacket 的對象】
5 、發送
3、上述操作循環操作
package com.offcn.second; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.util.Scanner; public class MyQQ { public static void main(String[] args) throws Exception{ DatagramSocket ds = new DatagramSocket(); Scanner sc= new Scanner(System.in); while(true){ //發送消息 System.out.print("My:"); //輸入發送信息 String smsg = sc.nextLine(); //byte[] sbs = smsg.getBytes(); //int slen = sbs.length; //創建數據包 DatagramPacket sdp = new DatagramPacket(smsg.getBytes(),//數據轉為byte數組 smsg.getBytes().length,//數據長度 InetAddress.getLocalHost(),//接收端端口號 9999);//接收端,端口號 //發送 ds.send(sdp); //接收消息 //創建接收數據的數據包 DatagramPacket rdp = new DatagramPacket(new byte[1024],1024); //接收數據 ds.receive(rdp); //將接收的數據轉為字符串 String rmsg = new String(rdp.getData(),0,rdp.getLength()); //打印輸出 System.out.println("His:"+rmsg); } } }
package com.offcn.second; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.util.Scanner; public class HisQQ { public static void main(String[] args) throws Exception{ DatagramSocket ds = new DatagramSocket(9999); Scanner sc = new Scanner(System.in); while(true){ //創建接收數據的數據包 DatagramPacket rdp = new DatagramPacket(new byte[1024],1024); ds.receive(rdp); //將接收的數據轉換為字符串 String rmsg = new String(rdp.getData(),0,rdp.getLength()); //輸出接收到的信息 System.out.println("His:"+rmsg); //給對方回消息 //輸入發送的數據 System.out.print("My:"); String smsg = sc.nextLine(); //創建發送數據的數據包 DatagramPacket sdp = new DatagramPacket(smsg.getBytes(), smsg.getBytes().length, rdp.getAddress(), rdp.getPort()); ds.send(sdp); } } }
運行結果:
以上是“java如何實現基于UDP協議的聊天小程序”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。