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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产伦精品一区二区三区免费迷 | 99视频精品国在线视频艾草 | 久久久免费观成人影院 | 热99精品 | 国产精品综合在线 | 青青国产成人久久91网 | 婷婷久久综合九色综合九七 | 亚洲第一综合天堂另类专 | 日本妇人成熟免费观看18 | 日韩精品视频观看 | 香港三级血恋3 | 国产做a爰片久久毛片 | 亚洲天堂男人的天堂 | 波多野结衣女教师在线观看 | 亚洲高清国产拍精品动图 | 美女舒服好紧太爽了视频 | 鞋奴的视频VK | 精品亚洲综合在线第一区 | 国产成人久久精品一区二区三区 | 国产yw193.㎝m在线观看 | 亚洲高清一区二区三区久久 | 男人j桶进女人p桶爽 | 先锋资源久久 | 逼逼爱| 校园纯肉H教室第一次 | 国产成人激烈叫床视频 | 女教师三级做受 | 日韩伦理在线观看 | 亚洲高清在线天堂精品 | 东方影视欧美天天影院 | 欧美日本一本线在线观看 | 6080午夜| 亚洲天堂免费 | 双性人bbww欧美双性 | 天天舔天天射 | 俄罗斯引擎首页进入 | 艹出白浆 | 出差上的少妇20p | 色国产精品 | 女人叉开腿让男人捅 | 久久精品热在线观看85 |