我有一个方法:
void test(String clientIpPort, String serverIpPort) throws IOException {
String[] clientParameters = clientIpPort.split(":");
String[] serverParameters = serverIpPort.split(":");
InetSocketAddress clientAddress = new InetSocketAddress(clientParameters[0], Integer.parseInt(clientParameters[1]));
InetSocketAddress serverAddress = new InetSocketAddress(serverParameters[0], Integer.parseInt(serverParameters[1]));
Socket socket = new Socket();
socket.setReuseAddress(true);
socket.bind(clientAddress);
socket.connect(serverAddress, 2000);
socket.shutdownOutput();
socket.shutdownInput();
socket.close();
}
当我运行此方法时,可以在Packet Sender中看到套接字已实际连接。当我两次或两次以上运行代码时,总是得到一个java.net.BindException
地址已在使用中:connect。如何在单个线程上多次运行此命令而又不获取BindException
且不更改服务器和客户端端口。目前,只有在我等待1-2分钟然后再次运行它时,它才起作用。