Java-сокет не подключается на некоторых компьютерах - PullRequest
0 голосов
/ 22 апреля 2011

Я пару месяцев создавал приложение Java на другом компьютере с Netbeans. Приложение использует сокеты Javas и подключается к другому приложению к другому компьютеру (или к тому же) через порт 4444. Приложение отлично соединяется на первом компьютере с другим приложением: запускается из netbeans, запускается из командной строки и запускается из файла JAR. .

Сейчас я продолжаю проект на другом компьютере. Сначала я попытался запустить тот же источник на этих компьютерах отладчик Netbeans. Приложение запускается и подключается к другому приложению, но сразу останавливается. Нет сообщений об ошибках или исключений. Экран не зависает, но и приложения не начинают взаимодействовать друг с другом.

Я также пытался запустить файл jar приложений из командной строки. Появляется та же проблема. Он устанавливает соединение с другим приложением, но больше ничего не происходит.

Наконец запустил приложение из файла jar, дважды щелкнув по нему. Теперь он устанавливает соединение и начинает общаться с другим.

Брандмауэр не блокирует приложение или сетевые компоненты. Я также пытался запустить NetBeans с выключенным брандмауэром, но все еще безрезультатно. Java была обновлена ​​на обоих компьютерах. По некоторым причинам приложение отлично работает на некоторых компьютерах, а на других это раздражает.

Ответы [ 2 ]

0 голосов
/ 22 апреля 2011

Получить трассировку стека из запущенного приложения. Он скажет вам, где программа "застряла".

Вы также можете получить выгоду от добавления регистрации в вашем приложении. Это приведет к сбросу операторов в файл или систему, которые вы можете использовать для определения ее внутреннего состояния. Например; когда пишешь в сокет:

OutputStream os = socket.getOutputStream();
while (true) {
    System.out.println("write loop:enter");
    os.write("machine 1".getBytes());
    System.out.println("write loop:exit");
}

Удачи.

0 голосов
/ 22 апреля 2011

Возможно, что порт 4444 используется другим приложением.

Проверьте это с помощью утилиты netstat .

Ваше приложение должно быть настраиваемым.IE 4444 не должен быть жестко закодирован.

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