日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UDP协议下的DatagramSocket和DatagramPacket

發(fā)布時間:2023/12/10 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UDP协议下的DatagramSocket和DatagramPacket 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1,UDP協(xié)議?
面向無連接,數(shù)據(jù)不安全,但速度快。不區(qū)分客戶端與服務端。
2,實現(xiàn)通信? (三個達到)

  • IP 簡單說就是你電腦地址。
  • 端口 你電腦里面軟件的地址。
  • 協(xié)議 如何進行通訊。
    DatagramSocket 用來發(fā)送和接收數(shù)據(jù)報包的套接字。
    DatagramPacket 數(shù)據(jù)報包用來實現(xiàn)無連接包投遞服務。
    3,代碼實現(xiàn)
    22222童鞋有點仰慕33333童鞋,下面是22222童鞋給33333童鞋發(fā)消息。
package c20_1_4;import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; import java.net.UnknownHostException; import java.util.Scanner;public class TestSocket {// 22222同學給33333同學發(fā)public static void send() {// 數(shù)據(jù)報插座try {DatagramSocket ds = new DatagramSocket(22222);// 數(shù)據(jù)包System.out.println("請輸入消息:");Scanner sc = new Scanner(System.in);String msg = sc.nextLine();byte[] b = msg.getBytes("utf-8");DatagramPacket p = new DatagramPacket(b, b.length, InetAddress.getByName("127.0.0.1"), 33333);// 發(fā)送數(shù)據(jù)包ds.send(p);sc.close();ds.close();System.out.println("已發(fā)送。");} catch (SocketException e) {e.printStackTrace();} catch (UnsupportedEncodingException e) {e.printStackTrace();} catch (UnknownHostException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}// 33333 得到消息public static void get() {try {System.out.println("我是33333, 等待你的消息...");DatagramSocket ds = new DatagramSocket(33333);byte[] get = new byte[1024];DatagramPacket p = new DatagramPacket(get, get.length);ds.receive(p);System.out.println("地址為:" + p.getAddress() + "端口為:" + p.getPort() + "給你發(fā)消息啦!");System.out.println("消息為: " + new String(get, 0, p.getLength(), "utf-8"));ds.close();} catch (SocketException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}

測試一下。

public static void main(String[] args) {// 33333同學要一直在線,不然數(shù)據(jù)丟失,等待22222的消息get();}

public static void main(String[] args) {send();

發(fā)了

哈哈哈,恭喜22222同學,33333收到了你的愛意。(???(???(???*)

總結

以上是生活随笔為你收集整理的UDP协议下的DatagramSocket和DatagramPacket的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。