Java實(shí)現(xiàn)UDP互發(fā)消息
本文實(shí)例為大家分享了Java實(shí)現(xiàn)UDP互發(fā)消息的具體代碼,供大家參考,具體內(nèi)容如下
UDP的發(fā)送端
package udp;
/**
UDP發(fā)送端
*/
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
public class UdpClient {
public static void main(String[] args) throws IOException {
System.out.println("發(fā)送方啟動(dòng)中......");
//使用DatagramSocket指定端口,創(chuàng)建發(fā)送端
DatagramSocket client = new DatagramSocket(8888);
//準(zhǔn)備數(shù)據(jù),轉(zhuǎn)換為字節(jié)數(shù)組
String data ="帥哥";
byte[] datas = data.getBytes();
//封裝成DatagramPacket包裹,需要指定目的地
DatagramPacket packet = new DatagramPacket(datas,0,datas.length,new InetSocketAddress("localhost",9999));
//發(fā)送包裹send(DatagramPacket p)
client.send(packet);
//釋放資源
client.close();
}
}
UDP的接收端
package udp;
/**
UDP接收端
*/
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class UdpServer {
public static void main(String[] args) throws IOException {
System.out.println("接收方啟動(dòng)中......");
//使用DatagramSocket指定端口創(chuàng)建接收端,端口值要與客戶端的發(fā)送包裹一致
DatagramSocket server =new DatagramSocket(9999);
//準(zhǔn)備容器封裝成DatagramPacket包裹
byte[] container = new byte[1024*60];
DatagramPacket packet = new DatagramPacket(container,0,container.length);
//阻塞式
server.receive(packet);
byte[] datas = packet.getData();
int len=packet.getLength();
System.out.println(new String(datas,0,len));
server.close();
}
}
注意:在Intellij idea中運(yùn)行時(shí),要先把兩個(gè)端的平行運(yùn)行設(shè)置打開(kāi),不然每次只能打開(kāi)發(fā)送端或者接收端,不能同時(shí)打開(kāi),具體操作如下:


最后,運(yùn)行結(jié)果如下:


以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java基于Dijkstra算法實(shí)現(xiàn)校園導(dǎo)游程序
這篇文章主要為大家詳細(xì)介紹了Java基于Dijkstra算法實(shí)現(xiàn)校園導(dǎo)游程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
MyBatis Example And與Or混合使用的實(shí)例
這篇文章主要介紹了MyBatis Example And與Or混合使用的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
IDEA如何對(duì)單個(gè)的java class文件打成jar包
這篇文章主要介紹了IDEA如何對(duì)單個(gè)的java class文件打成jar包問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
MyBatis-Plus枚舉和自定義主鍵ID的實(shí)現(xiàn)步驟
這篇文章主要給大家介紹了關(guān)于MyBatis-Plus枚舉和自定義主鍵ID的相關(guān)資料,文中通過(guò)實(shí)例代碼以及圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-02-02
java實(shí)現(xiàn)屏幕共享功能實(shí)例分析
這篇文章主要介紹了java實(shí)現(xiàn)屏幕共享功能的方法,以實(shí)例形式分析了屏幕共享功能的客戶端與服務(wù)端的詳細(xì)實(shí)現(xiàn)方法,是非常具有實(shí)用價(jià)值的技巧,需要的朋友可以參考下2014-12-12
springboot2.2 集成 activity6實(shí)現(xiàn)請(qǐng)假流程(示例詳解)
這篇文章主要介紹了springboot2.2 集成 activity6實(shí)現(xiàn)請(qǐng)假完整流程示例詳解,本文通過(guò)示例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
List集合對(duì)象中按照不同屬性大小排序的實(shí)例
下面小編就為大家?guī)?lái)一篇List集合對(duì)象中按照不同屬性大小排序的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03

