Невозможно связать сокет с моим локальным адресом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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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