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

Java基于socket服務(wù)實(shí)現(xiàn)UDP協(xié)議的方法

 更新時(shí)間:2015年05月29日 14:55:32   作者:wo_soul  
這篇文章主要介紹了Java基于socket服務(wù)實(shí)現(xiàn)UDP協(xié)議的方法,通過兩個(gè)簡單實(shí)例分析了java通過socket實(shí)現(xiàn)UDP發(fā)送與接收的技巧,需要的朋友可以參考下

本文實(shí)例講述了Java基于socket服務(wù)實(shí)現(xiàn)UDP協(xié)議的方法。分享給大家供大家參考。具體如下:

示例1:

接收類:

package com.socket.demo; 
import java.io.IOException; 
import java.net.DatagramPacket; 
import java.net.DatagramSocket; 
public class UDPReceiveDemo { 
 public static void main(String[] args) throws IOException{ 
  System.out.println("接收端啟動…………"); 
 /* 
  2、建立UDP的socket的服務(wù),必須明確一個(gè)端口號 
  3、創(chuàng)建數(shù)據(jù)包,用于儲存接收到的數(shù)據(jù),方便用數(shù)據(jù)包對象的方法解析這些數(shù)據(jù) 
  4、使用DatagramSocket的receive方法將接收到的數(shù)據(jù)存儲到數(shù)據(jù)包中 
  5、通過數(shù)據(jù)包的方法解析數(shù)據(jù)包中的數(shù)據(jù) 
  5、關(guān)閉socket服務(wù) 
  */ 
  //udpsocket服務(wù),使用DatagramSocket對象 
  DatagramSocket ds=new DatagramSocket(10002); 
  //使用DatagramPacket將數(shù)據(jù)封裝到該對象中 
  byte[] buf=new byte[1024]; 
  DatagramPacket dp=new DatagramPacket(buf, buf.length); 
  //通過udp的socket服務(wù)將數(shù)據(jù)包發(fā)送出去,通過send方法 
  ds.receive(dp); 
  //通過數(shù)據(jù)包的方法解析數(shù)據(jù)包中的數(shù)據(jù),比如,地址、端口、數(shù)據(jù)內(nèi)容等 
  String ip=dp.getAddress().getHostAddress(); 
  //String name=dp.getAddress().getHostName(); 
  int port=dp.getPort(); 
  String text=new String(dp.getData(),0,dp.getLength()); 
  //System.out.println("-----"+ip+"-----"+name+"-----"+port+"-----"+text); 
  System.out.println("-----"+ip+"----------"+port+"-----"+text); 
  //關(guān)閉資源 
  ds.close(); 
 } 
} 

發(fā)送類:

package com.socket.demo; 
import java.io.IOException; 
import java.net.DatagramPacket; 
import java.net.DatagramSocket; 
import java.net.InetAddress; 
import java.net.SocketException; 
import java.net.UnknownHostException; 
public class UDPSendDemo { 
 public static void main(String[] args) throws IOException{ 
  System.out.println("發(fā)送端啟動…………"); 
 /* 
  * 1、創(chuàng)建udp傳輸?shù)陌l(fā)送端 
  2、建立UDP的socket的服務(wù) 
  3、將要發(fā)送的數(shù)據(jù)封裝到數(shù)據(jù)包中 
  4、通過udp的socket服務(wù)將數(shù)據(jù)包發(fā)送出去 
  5、關(guān)閉socket服務(wù) 
  */ 
  //udpsocket服務(wù),使用DatagramSocket對象 
  DatagramSocket ds=new DatagramSocket(8888);//監(jiān)聽端口 
  //將要發(fā)送的數(shù)據(jù)封裝到數(shù)據(jù)包中 
  String str="udp傳輸演示,go"; 
  //使用DatagramPacket將數(shù)據(jù)封裝到該對象中 
  byte[] buf=str.getBytes(); 
  DatagramPacket dp= 
    new DatagramPacket(buf, buf.length,InetAddress.getByName("192.168.1.100"),10002); 
  //通過udp的socket服務(wù)將數(shù)據(jù)包發(fā)送出去,通過send方法 
  ds.send(dp); 
  //關(guān)閉資源 
  ds.close(); 
 } 
} 

示例2:

接收類:

package com.socket.demo; 
import java.io.IOException; 
import java.net.DatagramPacket; 
import java.net.DatagramSocket; 
public class UDPReceiveDemo2 { 
 public static void main(String[] args) throws IOException{ 
  System.out.println("接收端啟動…………"); 
 /* 
  2、建立UDP的socket的服務(wù),必須明確一個(gè)端口號 
  3、創(chuàng)建數(shù)據(jù)包,用于儲存接收到的數(shù)據(jù),方便用數(shù)據(jù)包對象的方法解析這些數(shù)據(jù) 
  4、使用DatagramSocket的receive方法將接收到的數(shù)據(jù)存儲到數(shù)據(jù)包中 
  5、通過數(shù)據(jù)包的方法解析數(shù)據(jù)包中的數(shù)據(jù) 
  5、關(guān)閉socket服務(wù) 
  */ 
  //udpsocket服務(wù),使用DatagramSocket對象 
  DatagramSocket ds=new DatagramSocket(10003); 
  while(true){ 
   //使用DatagramPacket將數(shù)據(jù)封裝到該對象中 
   byte[] buf=new byte[1024]; 
   DatagramPacket dp=new DatagramPacket(buf, buf.length); 
   //通過udp的socket服務(wù)將數(shù)據(jù)包發(fā)送出去,通過send方法 
   ds.receive(dp);//阻塞式的。 
   //通過數(shù)據(jù)包的方法解析數(shù)據(jù)包中的數(shù)據(jù),比如,地址、端口、數(shù)據(jù)內(nèi)容等 
   String ip=dp.getAddress().getHostAddress(); 
   //String name=dp.getAddress().getHostName(); 
   int port=dp.getPort(); 
   String text=new String(dp.getData(),0,dp.getLength()); 
   //System.out.println("-----"+ip+"-----"+name+"-----"+port+"-----"+text); 
   System.out.println("-----"+ip+"----------"+port+"-----"+text); 
  } 
  //關(guān)閉資源 
  //ds.close(); 
 } 
}

發(fā)送類:

package com.socket.demo; 
import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.net.DatagramPacket; 
import java.net.DatagramSocket; 
import java.net.InetAddress; 
public class UDPSendDemo2 { 
 public static void main(String[] args) throws IOException{ 
  System.out.println("發(fā)送端啟動…………"); 
 /* 
  * 1、創(chuàng)建udp傳輸?shù)陌l(fā)送端 
  2、建立UDP的socket的服務(wù) 
  3、將要發(fā)送的數(shù)據(jù)封裝到數(shù)據(jù)包中 
  4、通過udp的socket服務(wù)將數(shù)據(jù)包發(fā)送出去 
  5、關(guān)閉socket服務(wù) 
  */ 
  //udpsocket服務(wù),使用DatagramSocket對象 
  DatagramSocket ds=new DatagramSocket(9999);//監(jiān)聽端口 
  //將要發(fā)送的數(shù)據(jù)封裝到數(shù)據(jù)包中 
  //String str="udp傳輸演示,go"; 
  BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));//鍵盤輸入 
  String line=null; 
  //使用DatagramPacket將數(shù)據(jù)封裝到該對象中 
  while((line=bufr.readLine())!=null){ 
   byte[] buf=line.getBytes();// 
   DatagramPacket dp= 
     new DatagramPacket(buf, buf.length,InetAddress.getByName("192.168.1.100"),10003); 
   //通過udp的socket服務(wù)將數(shù)據(jù)包發(fā)送出去,通過send方法 
   ds.send(dp); 
   if("886".equals(line)){ 
    break; 
   } 
  } 
  //關(guān)閉資源 
  ds.close(); 
 } 
}

運(yùn)行效果圖如下:

接收:

發(fā)送:

希望本文所述對大家的java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 詳解Nacos配置中心的實(shí)現(xiàn)

    詳解Nacos配置中心的實(shí)現(xiàn)

    Spring Cloud Alibaba 是阿里巴巴提供的一站式微服務(wù)開發(fā)解決方案。而 Nacos 作為 Spring Cloud Alibaba 的核心組件之一,提供了兩個(gè)非常重要的功能:注冊中心和配置中心,我們今天來了解和實(shí)現(xiàn)一下二者
    2022-08-08
  • Spring AI與DeepSeek實(shí)戰(zhàn)一之快速打造智能對話應(yīng)用

    Spring AI與DeepSeek實(shí)戰(zhàn)一之快速打造智能對話應(yīng)用

    本文詳細(xì)介紹了如何通過SpringAI框架集成DeepSeek大模型,實(shí)現(xiàn)普通對話和流式對話功能,步驟包括申請API-KEY、項(xiàng)目搭建、配置API-KEY、創(chuàng)建ChatClient對象、創(chuàng)建對話接口、切換模型、使用prompt模板、流式對話等,感興趣的朋友一起看看吧
    2025-03-03
  • JPA中@CreatedDate和@LastModifiedDate的使用方式

    JPA中@CreatedDate和@LastModifiedDate的使用方式

    這篇文章主要介紹了JPA中@CreatedDate和@LastModifiedDate的使用方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Spring Cloud 配置中心內(nèi)容加密的配置方法

    Spring Cloud 配置中心內(nèi)容加密的配置方法

    這篇文章主要介紹了Spring Cloud 配置中心內(nèi)容加密的配置方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-06-06
  • Java的常用包

    Java的常用包

    本文主要對Java的常用包進(jìn)行一一介紹。具有一定的參考價(jià)值,下面跟著小編一起來看下吧
    2017-01-01
  • spring?boot項(xiàng)目中集成rocketmq詳細(xì)步驟

    spring?boot項(xiàng)目中集成rocketmq詳細(xì)步驟

    這篇文章主要給大家介紹了關(guān)于spring?boot項(xiàng)目中集成rocketmq的相關(guān)資料,springboot集成rocketmq的方法非常簡單,文中直接上代碼,需要的朋友可以參考下
    2023-09-09
  • Java項(xiàng)目打包Docker鏡像全流程

    Java項(xiàng)目打包Docker鏡像全流程

    本文是一份超詳細(xì)的Java項(xiàng)目Docker化實(shí)戰(zhàn)手冊,從環(huán)境準(zhǔn)備到最終上線,手把手帶你完成整個(gè)容器化部署流程,無論你是剛接觸Docker的新手,還是想系統(tǒng)梳理容器化流程的開發(fā)者,這篇文章都能給你帶來實(shí)實(shí)在在的幫助,需要的朋友可以參考下
    2025-04-04
  • Spring,hibernate,struts經(jīng)典面試筆試題(含答案)

    Spring,hibernate,struts經(jīng)典面試筆試題(含答案)

    這篇文章主要介紹了Spring,hibernate,struts經(jīng)典面試筆試題極其參考含答案,涉及SSH基本概念,原理與使用技巧,需要的朋友可以參考下
    2016-03-03
  • Java使用Jdbc連接Oracle執(zhí)行簡單查詢操作示例

    Java使用Jdbc連接Oracle執(zhí)行簡單查詢操作示例

    這篇文章主要介紹了Java使用Jdbc連接Oracle執(zhí)行簡單查詢操作,結(jié)合實(shí)例形式詳細(xì)分析了java基于jdbc實(shí)現(xiàn)Oracle數(shù)據(jù)庫的連接與查詢相關(guān)操作技巧,需要的朋友可以參考下
    2019-09-09
  • Spring集成PageHelper的簡單用法示例

    Spring集成PageHelper的簡單用法示例

    這篇文章主要介紹了Spring集成PageHelper的簡單用法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08

最新評論

平阴县| 韶山市| 永年县| 通州区| 双鸭山市| 镇宁| 弋阳县| 贵州省| 龙陵县| 丰原市| 孝义市| 鄂伦春自治旗| 曲松县| 岑溪市| 邯郸县| 甘谷县| 万山特区| 洮南市| 辽阳市| 福鼎市| 高青县| 龙江县| 开远市| 扬州市| 凌源市| 甘德县| 修文县| 杭州市| 赫章县| 亳州市| 米泉市| 洪江市| 固阳县| 谢通门县| 宣城市| 余庆县| 中阳县| 安义县| 清苑县| 霍林郭勒市| 和硕县|