Невозможно связать сокет с моим локальным адресомJAVA

Программисты JAVA общаются здесь
Anonymous
Невозможно связать сокет с моим локальным адресом

Сообщение Anonymous »

У меня есть javax.net.SSLSocket, который я инициализирую, выполнив следующие действия:

Код: Выделить всё

SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
SSLSocket sslSocket = (SSLSocket) sslsocketfactory.createSocket(host, hostPort, InetAddress.getByName(localAddress), localPort);
sslSocket.startHandshake();
и мой клиент без проблем подключается к серверу.
Когда я закрываю соединение sslSocket.close() и пытаюсь инициализировать новый сокет, используя тот же локальный адрес и тот же адрес хоста, но другой порт хоста и другой локальный порт, соединение отклоняется, и я получаю java.net.ConnectException: соединение отклонено:

Код: Выделить всё

SSLSocket sslSocket2 = (SSLSocket) sslsocketfactory.createSocket(host, hostPort2, InetAddress.getByName(localAddress), localPort2);
sslSocket2.startHandshake();
Странно то, что когда я пытаюсь повторно инициализировать новый сокет, не привязывая его к моему локальному адресу и порту, он работает нормально:

Код: Выделить всё

SSLSocket sslSocket2 = (SSLSocket) sslsocketfactory.createSocket(host, port2);
кто-нибудь знает, что происходит?

Подробнее здесь: https://stackoverflow.com/questions/328 ... al-address

Вернуться в «JAVA»