Java-апплет сообщает SocketException или ConnectException, но соединение в порядке - PullRequest
0 голосов
/ 30 августа 2010

Я немного новичок в программировании Java-апплета и поддерживаю чужой апплет.Подписанный апплет записывает некоторый голос и затем загружает файл.При загрузке мы иногда получаем одно из этих исключений (SocketException, ConnectException, даже UnknownHostException).Мы ловим их, а затем сообщаем о них через вызов Javascript из апплета.Вызов javascript работает нормально, что для меня означает, что соединение в порядке.Как может получиться, что апплет не может открыть сокет или не может подключиться, но нет проблем с подключением браузера?

Разъяснение: что я имел в виду под «подключение в порядке», это то, что сетьи с сервером все в порядке, поэтому я не уверен, почему апплет не может установить соединение.

Апплет подписан и имеет доступ к сети.Это случается очень редко.

Спасибо

Ответы [ 2 ]

0 голосов
/ 15 сентября 2011

Без дополнительной информации трудно сказать, в чем здесь конкретная проблема. Если это действительно случается очень редко и при следующем вызове (из JavaScript) он работает нормально, это может помочь просто попробовать дважды, чтобы установить соединение.

Socket con;
try {
    con.connect(...);
} catch (IOException ignoreFirstFailure) {
    try {
        con.connect(...);
    } catch (IOExcetpion secondFailure) {
        handleExceptionWithJavaScript(secondFailure);
    }
}

Итак, для получения дополнительной информации было бы очень полезно, если бы вы указали, какое соединение вы используете и как.

0 голосов
/ 31 августа 2010

Javascript запускается в браузере и использует свое собственное соединение, если взаимодействует с сервером. Так что это не имеет значения. Если апплет получил исключение ConnectEx там , то нет соединения , чтобы быть в порядке, и если вы получаете любое IOException, отличное от SocketTimeoutException, соединение скрыто, а не ОК, нет два пути, и вы ничего не можете сделать, кроме как закрыть сокет и начать заново.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...