我用java程序UDP监听某个端口,运行的时候其他程序就不能监听这个端口了(端口被占用),如果先启动其他程序,java程序就收不到消息了。也试过socket.setReuseAddress(true);方法了。
请大家帮忙解决一下,谢谢!附上我的测试代码:
package com.chi.ws;import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.InetSocketAddress;public class UdpServer { /**
 * @param args
 */
public static void main(String[] args) {
Thread thread = new Thread(new RunStartUdp());
thread.start();
}

/**
 * 声明DatagramPacket对象
 */
private static DatagramPacket packet;
/**
 * 声明DatagramSocket对象
 */
private static DatagramSocket socket;

private static byte recVBuf[];

private static class RunStartUdp implements Runnable{ @Override
public void run() {
// 创建接受方的udp端口以接收数据
recVBuf = new byte[500];
packet = new DatagramPacket(recVBuf, recVBuf.length);
try {
System.out.println("接收数据开始" );
socket = new DatagramSocket(null);
socket.setReuseAddress(true);
socket.bind(new InetSocketAddress(1130));
byte data[] = new byte[1024];
DatagramPacket dp = new DatagramPacket(data, 1024); do {
String str;
socket.receive(packet);
str = new String(recVBuf, 0, packet.getLength());
System.out.println("接收数据 --> " + str);
} while (true);
} catch (Exception e) {
System.out.println(e.getMessage());
}
}

}}JavaUDP