У меня есть метод:
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 минуты, прежде чем снова запустить его.