EOFException выдается на BlackBerry при попытке открыть соединение TLS с Connector.open () - PullRequest
0 голосов
/ 15 февраля 2012

Иногда я получаю EOFException, когда пытаюсь открыть соединение TLS через Wi-Fi с

Connector.open("tls://sub.domain.com:443;deviceside=true;interface=wifi;EndToEndRequired");

Звонок на Connector.open() блокируется. EOFException генерируется примерно через 10 секунд после вызова Connector.open (). В настоящее время я не могу проверить, что происходит на стороне сервера.

Edit:
Вызов Connector.open () сделан из потока, который НЕ является основным потоком событий. Проблема возникает на разных устройствах под управлением ОС 6, хотя я не думаю, что проблема связана с ОС.

Есть мысли о том, как решить эту проблему или что может быть причиной ошибки?

Обновление
В некоторых случаях вызов Connector.open () также дает a TLSAlertException, заключенный в TLSIOException. Исключение выдается не сразу, а примерно через 10 секунд, как упоминалось ранее EOFException.

1 Ответ

0 голосов
/ 28 февраля 2012

Наконец, я смог перехватить рукопожатие TLS на стороне сервера и увидел следующее:

  1. Сервер получил сообщение Client Hello
  2. Сервер ответил Server Hello message
  3. Обмен ключами клиента не был получен от клиента в течение 10 секунд
  4. Сервер закрыл соединение с клиентом

Поскольку я не вижу возможности повлиять на поток Connector.open(), единственное, что я могу сделать, это повторить попытку (я никогда не видел, чтобы это происходило два раза подряд) после catch, либо EOFException или TLSAlertException (и, возможно, другие исключения, связанные с TLS).

...