(Я не ставил код в этом вопросе, так как фактический код, вероятно, не имеет значения здесь. Если вы скажете, что это действительно так, то я могу отредактировать вопрос позже, чтобы поместить его.)Winsock2 нелокально отказался
Я новичок в использовании winsock2 или любого другого сетевого API. У меня очень простое серверное приложение и клиентское приложение, в котором сервер отправляет строку клиенту, а затем отключается.
Приложения работают хорошо, когда я использую localhost
или 127.0.0.1
как inet_addr()
аргумент, но когда я использую мой «реальный» IP, клиентское приложение просто получает WSAECONNREFUSED
и сервер не видит его. Я убедился, что для обоих приложений один и тот же порт, и тот же протокол.
[Изменить] Я вернулся к этому вопросу после некоторого отказа от работы в сети. Я думаю, что на самом деле это может быть связано с тем, что я использую маршрутизатор, а не что-то в своем коде.
Использование сетевого анализатора (tcpdump, wireshark и т. Д.) На любом из них или на обоих хостах может показать, что является корнем проблемы. –
Да, я использовал 'htons()', и я использовал свой собственный IP-адрес во время работы сервера (и я проверил с помощью 'localhost' и' 127.0.0.1', чтобы убедиться, что сервер работал правильно). Я добавил правило на свой брандмауэр, чтобы всегда разрешать вход и выход на этом порту (и перемещал правило вверху), но это первый раз, когда я когда-либо использовал эту функцию брандмауэра, поэтому я не уверен, что я сделал это правильно. – rsethc
Также порт не должен иметь значения, поскольку я ничего не менял о порте на клиенте или сервере между попытками с локальным адресом, а затем использовал свой «реальный» IP. – rsethc