Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Клиент не получает ответа от сервера

Автор вопроса: WafsekОтветов: 1

Я нуб в этом. Я буду очень благодарен, если кто-нибудь сможет мне помочь. Это мой первый порт здесь, поэтому я постарался быть как можно более подробным (если это правильный способ задавать вопросы здесь).

В порядке. Позвольте мне объяснить проблему, с которой я столкнулся. Я пишу чат-сервер и клиентскую программу. Основная вещь, которую я пытаюсь достичь, это ; 1)подключиться к серверу 2)начать отправку и получение сообщений.

То, как я настроил сервер, заключается в том, что когда клиент собирается отправлять сообщения, сервер собирается отправить сообщение обратно всем подключенным клиентам. Другими словами, я пытаюсь создать чат.

Дело в том, что мой сервер или клиент (в зависимости от того, где ошибка) дает мне три разных результата при трех разных условиях.

УСЛОВИЕ ПЕРВОЕ: оба клиента находятся на одном компьютере. РЕЗУЛЬТАТ: все работает так, как я ожидал.

УСЛОВИЕ ВТОРОЕ: Один из клиентов находится на другом компьютере, но все еще в той же локальной сети (моя домашняя сеть). РЕЗУЛЬТАТ: Удаленный клиент может отправлять сообщения, а клиент находится на том же компьютере, что и сервер (я назову его " локальный клиент") может их получить. Но удаленный клиент получает только свои собственные сообщения и не получает сообщения от "локального клиента".

УСЛОВИЕ ТРЕТЬЕ: Один из клиентов удален (где-то еще в Интернете). Другой находится на том же компьютере, что и сервер. РЕЗУЛЬТАТ: локальный клиент может как отправлять, так и получать сообщения, но на этот раз удаленный клиент может только отправлять сообщения, не получая никаких сообщений ни от себя, ни от локального клиента.

Вот ссылка на мой код. Это немного.

serverjavaclientchattcpclient

Ответы

Ответ 1 · Germann Arlington

Скорее всего, ваши проблемы связаны с брандмауэром.

Я бы посоветовал вам добавить ведение журнала в класс вашего сервера и регистрировать все полученные сообщения, откуда они приходят и куда они отправляются, а также регистрировать все ошибки.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы