服务器通过udp给客户端发送消息,客户端为什么收不到呀,代码如下,请大牛帮忙看一下

DatagramSocket socket=new DatagramSocket(ServerAddress.clientPort);
socket.setSoTimeout(1000);
DatagramPacket rec ;
while (true) {
byte[] data=new byte[1024];
rec = new DatagramPacket(data, data.length);
socket.receive(rec);

放在一个线程中 一直监听服务器那边有没有发消息过来,但是服务器明明发了 就是收不到

服务器通过udp给客户端发送消息,你的服务器和客户端是在同一个网段么?
也就是说你用于测试的IP是什么?
客户端是使用的公网IP么?有没有开启防火墙?使用的端口是什么?是不是特殊的端口?

但是我先send在receive接收服务器响应的时候,是可以接收到的,很纳闷为什么

尝试一下,socket创建的时候,不要指定IP,就指定端口,因为IP经过映射后可能不是预期的。