激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产又白又嫩又紧又爽18p | 天天看成人免费毛片视频 | 日韩视频―中文字幕 | 康妮卡特欧美精品一区 | 日韩欧美高清一区 | 日日久视频 | 免费国产自久久久久三四区久久 | 亚洲网在线 | 久久国产精品久久久久久 | 久久中文免费 | 久久精品亚洲国产奇米99 | 成人毛片视频免费 | 成人毛片视频免费 | 亚洲一区在线视频 | 日日草夜夜操 | 2021国产精品视频 | 国产一级小视频 | 久久久久久麻豆 | 国产一区国产二区在线观看 | 黄色免费网站在线播放 | 日韩视频在线观看免费 | 欧美a∨亚洲欧美亚洲 | 激情97 | 欧美久久久一区二区三区 | 作爱在线观看 | 成人福利视频在 | 另类亚洲孕妇分娩网址 | 一区二区美女视频 | 国产一区视频在线观看免费 | a免费看| 久久精品1区2区 | 精国产品一区二区三区四季综 | 成人午夜激情视频 | 一区二区三区四区在线 | 欧美三级欧美成人高清www | 污黄视频在线观看 | 日日天日日夜日日摸 | 操穴视频| 欧洲黄视频 | 国产精品久久久久久一区二区三区 | 一本色道久久综合亚洲精品小说 |