初次尝试UDP实现,接收端接收不到信息

白砂糖番茄乐园 白砂糖番茄乐园 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区


接收端接收不到发送端的信息,我用DatagramSocket的getPort()方法试了一下,返回的是-1,API是这样解释的Returns -1 if the socket is not connected.

本人初学,查了好些资料都无法解决

发送端:
public class Client01 {
public static void main(String[] args) throws Exception{
System.out.println("发送端准备准备中");
//1. 使用DatagramSocket 指定端口,创建发送端
DatagramSocket client = new DatagramSocket(9999);
System.out.println(client.getPort());// 返回-1
//2. 准备数据,转化成字节数组
String msg = "今天27度";
byte[] data = msg.getBytes();
//3. 封装成DatagramPacket,需指定目的地
DatagramPacket p = new DatagramPacket(data, data.length,
new InetSocketAddress("localhost", 8888));
// 4. 发送包裹send(DatagramPacket p)
client.send(p);
//5. 释放资源
client.close();
}
}

接收端:
public class Sever01 {
public static void main(String[] args) throws Exception{
// 1. 使用DatagramSocket 指定端口,创建接收端
DatagramSocket server = new DatagramSocket(8888);
// 2. 准备容器 封装成DatagramPackets包裹
byte[] buf = new byte[1024*60];
DatagramPacket p = new DatagramPacket(buf, buf.length);
// 3. 阻塞式接受包裹receive(DatagramPacket p)
server.receive(p);
// 4. 分析数据
// byte[] getData()
byte[] data = p.getData();
// int getLength()
int len = p.getLength();
System.out.println(new String(data, 0, len));
// 5. 释放资源
server.close();
}
}
...全文
评论 3
收藏 已收藏
分享
返回顶部
白砂糖番茄乐园
Java SE 62,620 成员 307,251 内容