最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java網(wǎng)絡(luò)之基于UDP的聊天程序示例解析

 更新時間:2020年08月03日 14:41:41   作者:鋒J  
這篇文章主要介紹了java網(wǎng)絡(luò)之基于UDP的聊天程序示例解析,文中通過步驟及示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

基于UDP的Socket通信

UDP協(xié)議不是一種基于穩(wěn)定連接的協(xié)議,是一種面向數(shù)據(jù)報包的通信協(xié)議,不需要通信雙方建立穩(wěn)定的連接,也沒有所謂服務(wù)端和客戶的概念,數(shù)據(jù)報包在傳輸?shù)臅r候不保證一定及時到達,也不能保證數(shù)據(jù)報包的到達順序,但是UDP協(xié)議傳輸效率要遠高于TCP/IP。

以下是一個基于UDP的簡單的消息發(fā)送接收程序。

消息發(fā)送方

1.創(chuàng)建一個數(shù)據(jù)報的網(wǎng)絡(luò)通道

 DatagramSocket ds = new DatagramSocket();

2.準備需要傳輸?shù)臄?shù)據(jù)

String msg = "天王蓋地虎,小雞燉蘑菇?。?!";

3.將需要發(fā)送的數(shù)據(jù)打包成數(shù)據(jù)報包

DatagramPacket packet = new DatagramPacket(
      msg.getBytes(), 		//需要被發(fā)送的數(shù)據(jù)的字節(jié)數(shù)組
      msg.getBytes().length, 	//發(fā)送的數(shù)據(jù)長度(字節(jié)數(shù)組長度)
      InetAddress.getByName("localhost"), //接收方的ip
      1025	//接收方的端口				
    );

4.發(fā)送數(shù)據(jù)報包

 ds.send(packet);

5.關(guān)閉通道

ds.close();

消息接收方

1.創(chuàng)建一個數(shù)據(jù)報的網(wǎng)絡(luò)通道,綁定到指定端口

DatagramSocket ds = new DatagramSocket(1025);

2.聲明字節(jié)數(shù)組,用于存儲接收的數(shù)據(jù)

byte[] b = new byte[1024];

3.準備數(shù)據(jù)報包(空包)

DatagramPacket packet = new DatagramPacket(b, b.length);

4.接收數(shù)據(jù)到數(shù)據(jù)報包中

ds.receive(packet);

5.將數(shù)據(jù)解析為字符串并輸出

//接受到的數(shù)據(jù)(字節(jié)數(shù)組)實際長度
int len = packet.getLength();
//將字節(jié)數(shù)組轉(zhuǎn)換為字符串
String s = new String(b, 0, len);
System.out.println("收到的消息:"+s);

如要進行循環(huán)接收,則將第4、第5步進行無限循環(huán)。

到此這篇關(guān)于java網(wǎng)絡(luò)之基于UDP的聊天程序示例解析的文章就介紹到這了,更多相關(guān)java基于UDP的聊天程序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java正則表達式的語法及示例解析

    Java正則表達式的語法及示例解析

    這篇文章主要介紹了Java正則表達式的語法及示例解析,需要的朋友可以參考下
    2017-07-07
  • Java?Spring?Boot請求方式與請求映射過程分析

    Java?Spring?Boot請求方式與請求映射過程分析

    這篇文章主要介紹了Java?Spring?Boot請求方式與請求映射過程分析,Spring?Boot支持Rest風(fēng)格:使用HTTP請求方式的動詞來表示對資源的操作
    2022-06-06
  • mybatisPlus中apply的使用以進行聯(lián)表等復(fù)雜sql語句詳解

    mybatisPlus中apply的使用以進行聯(lián)表等復(fù)雜sql語句詳解

    在MyBatis-Plus中,`apply()`方法可以用于添加任意的SQL片段,包括聯(lián)表查詢,使用`apply()`方法的好處是可以直接添加原生的SQL片段,而不受MyBatis-Plus提供的常規(guī)查詢條件構(gòu)建方法的限制,但是,使用`apply()`方法需要注意安全性和性能問題
    2025-03-03
  • 詳解JDK9特性之JPMS模塊化

    詳解JDK9特性之JPMS模塊化

    JDK9引入了一個特性叫做JPMS(Java Platform Module System),也可以叫做Project Jigsaw。模塊化的本質(zhì)就是將一個大型的項目拆分成為一個一個的模塊,每個模塊都是獨立的單元,并且不同的模塊之間可以互相引用和調(diào)用。本文將詳細介紹JDK9特性之JPMS模塊化。
    2021-06-06
  • java判斷用戶輸入的是否至少含有N位小數(shù)的實例

    java判斷用戶輸入的是否至少含有N位小數(shù)的實例

    下面小編就為大家分享一篇java判斷用戶輸入的是否至少含有N位小數(shù)的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • Spring Security表單配置過程分步講解

    Spring Security表單配置過程分步講解

    SpringSecurity的配置基于WebSecurityConfigurerAdapter的實現(xiàn)類,我們這里主要講基本配置,即configure(HttpSecurity http)方法的配置,其實大都有默認值,我們可以直接用默認值,也可以自己設(shè)置
    2023-01-01
  • 解決java.util.HashMap$Values?cannot?be?cast?to?java.ut的問題

    解決java.util.HashMap$Values?cannot?be?cast?to?java.ut的問題

    這篇文章主要介紹了解決java.util.HashMap$Values?cannot?be?cast?to?java.ut的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Windows下如何安裝配置Redis環(huán)境

    Windows下如何安裝配置Redis環(huán)境

    這篇文章主要介紹了Windows下如何安裝配置Redis環(huán)境,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-12-12
  • Springboot?對接支付寶實現(xiàn)掃碼支付功能

    Springboot?對接支付寶實現(xiàn)掃碼支付功能

    本文介紹了如何在Spring?Boot項目中實現(xiàn)支付寶支付功能,包括沙箱環(huán)境配置、依賴引入、配置參數(shù)、訂單類定義、測試接口編寫等步驟,通過不同場景下的請求方式(PC端、二維碼、回調(diào)處理、定時查詢支付結(jié)果),展示了如何與支付寶API進行交互,感興趣的朋友一起看看吧
    2025-03-03
  • RocketMQ重試機制及消息冪代碼實例解析

    RocketMQ重試機制及消息冪代碼實例解析

    這篇文章主要介紹了RocketMQ重試機制及消息冪代碼實例解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02

最新評論

成武县| 安阳市| 雅江县| 夏河县| 鄄城县| 买车| 剑川县| 逊克县| 宜州市| 灵璧县| 长子县| 临沂市| 赞皇县| 宁远县| 塔城市| 平南县| 黎城县| 广西| 常德市| 兰坪| 南昌市| 百色市| 阆中市| 余干县| 阳新县| 泰顺县| 漳平市| 岳阳县| 大名县| 五指山市| 林甸县| 中山市| 九江市| 牙克石市| 望城县| 青阳县| 汤原县| 古蔺县| 塔河县| 永嘉县| 古交市|