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


接收端接收不到发送端的信息,我用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();
}
}
...全文
相关推荐
C#的Socket实现UDP协议通信
C#的Socket实现UDP协议通信 CSharp
Qt用于UDP通信对方停止发送,接收方仍有空报文出现问题
采用UDP通信的Qt程序,当接收方与发送方正常连接发送报文后,本地定时器自动发送,当中断发送方发送时,接收方仍然有空报文接收到: 接收报文原程序: QByteArray datagram; datagram.resize(udpSocket->pendingDatagramSize()); udpSocket->readDatagram(datagram.data(),datagram.size());/ QString str=datagram.data(); udp_ui->TextEdit->insertPlainText(str.append(' ').toUpper()); ,对方发送停止,仍有空报文出现
UDP_receive.zip_UDP matlab_UDP_receive_matlab udp_matlab udp接收_
Matlab里用m语言实现udp接收代码,比较简单,仅供测试用
用UDP协议实现广播通信OR单播通信
用UDP协议实现广播通信OR单播通信 在 visual studio 下 调试通过
python实现UDP协议下的文件传输
主要为大家详细介绍了python实现UDP协议下的文件传输,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


Java SE
