一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java實現基于UDP協議的聊天小程序操作

java實現基于UDP協議的聊天小程序操作

2022-02-28 00:32皇正經 Java教程

UDP是與TCP相對應的協議,UDP適用于一次只傳送少量數據、對可靠性要求不高的應用環境。正因為UDP協議沒有連接的過程,所以它的通信效率高;但也正因為如此,它的可靠性不如TCP協議高,本文給大家介紹java實現基于UDP協議的聊天

UDP(User Data Protocol,用戶數據報協議)是與TCP相對應的協議。它是面向非連接的協議,它不與對方建立連接,而是直接就把數據包發送過去!

UDP適用于一次只傳送少量數據、對可靠性要求不高的應用環境。正因為UDP協議沒有連接的過程,所以它的通信效率高;但也正因為如此,它的可靠性不如TCP協議高。QQ就使用UDP發消息,因此有時會出現收不到消息的情況。

利用UDP協議的發送和接收,模擬聊天小程序

創建聊天程序的A端:

        1、發送信息到接收端
                1 、準備發送的信息【鍵盤錄入】
                2 、指定接受端的 ip
                3 、指定接收端的端口
                4 、打包【創建 DatagramPacket 的對象】
                5 、發送【創建 DatagramSocket 的對象】
        2、接收接收回復的信息
                1 、準備接收使用字節數組
                2 、把數組封裝為數據報包【創建 DatagramPacket 的對象】
                3 、接收數據
                4 、解析報包有效數據
                3 、上述操作循環操作

創建聊天程序的B端:

        1、接收發送端的信息
                1 、準備接收使用字節數組
                2 、把數組封裝為數據報包【創建 DatagramPacket 的對象】
                3 、接收數據【創建 DatagramSocket 的對象】
                4 、解析報包有效數據
        2、回復發送端的信息
                1 、準備發送的信息【鍵盤錄入】
                2 、指定發送的 ip 【解析接收的報包的 ip 即可】
                3 、指定接收端的端口【解析接收的報包的端口即可】
                4 、打包【創建 DatagramPacket 的對象】
                5 、發送
        3、上述操作循環操作

端口一:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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);
 
 
 
        }
    }
}

端口二: 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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協議的聊天小程序操作

到此這篇關于java實現基于UDP協議的聊天小程序的文章就介紹到這了,更多相關java UDP聊天小程序內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/huangluyang123/article/details/120945469

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 特级淫片欧美高清视频蜜桃 | a级动漫| 亚洲国产三级在线观看 | 亚洲色欲色欲综合网站 | 性伴交换多p | 91精品国产91热久久久久福利 | 日本男男gaygays| 日本黄色影院 | 97久久精品午夜一区二区 | 精品久久久久久亚洲 | 999久久精品国产 | 国模大胆一区二区三区 | 日韩免费观看成第15集 | 国产九九视频在线观看 | 99操视频| 爱色v| 亚洲激情视频在线 | 2021日本三级理论影院 | 亚洲午夜精品久久久久久成年 | 国产a一级毛片午夜剧院 | 国产成人免费观看在线视频 | 深夜在线看 | 91看片淫黄大片在看 | 99久久精品国产综合一区 | 亚洲成人免费 | 婷婷网址 | 亚洲国产成人精品 | 青青青在线视频 | 秋霞鲁丝影院久久人人综合 | 国内精品91最新在线观看 | 小鸟酱在线播放 | 色久天| 91这里只有精品 | 9l国产精品久久久久麻豆 | 欧洲另类一二三四区 | 久久精视频 | 国产精品久久久久久久久久久搜索 | sss在线观看免费视频 | 日本一片免费观看高清完整 | 国产成人精品.一二区 | 久久久精品免费视频 |