Я пытаюсь использовать этот класс сокетов , но он работает только тогда, когда я использую его на своем компьютере.
Только для рабочего стола
Сервер запускается так: cSocketServer -p:2030 -i:192.168.178.22
Клиент подключается: cSocketclient -p:2030 -s:192.168.178.22
Работает нормально.
Настольный сервер, клиент для ноутбука
Сервер: cSocketServer -p:2030 -i:192.168.178.22
Клиент: cSocketclient -p:2030 -s:192.168.178.22
Точно так же, как указано выше, но это вызывает ошибку connect failed: 10060
. Что по сути означает, что истекло время ожидания.
Только для рабочего стола (внешний адрес)
Сервер: cSocketServer -p:2030 -i:192.168.178.22
Клиент: cSocketclient -p:2030 -s:xx.xx.xx.xx
Где xx.xx.xx.xx - мой внешний IP-адрес.
Та же ошибка: connect failed: 10060
. Порт 2030 определенно открыт и доступен, потому что я протестировал его с несколькими несвязанными приложениями, которые позволяют их пользователям выбирать свои собственные порты (например, utorrent). Пока они выполняются, whatismyip.org утверждает, что порт 2030 открыт. Но когда я запускаю мое приложение, оно сообщает об истечении времени ожидания. Эти приложения не имеют никаких специальных привилегий в брандмауэре.
Но даже если бы я испортил некоторые настройки брандмауэра / маршрутизатора (что я вполне уверен, что не сделал), это не объяснило бы, почему я не могу подключиться к серверу из моей локальной сети. Другие службы (такие как обмен файлами) работают нормально, поэтому между двумя компьютерами определенно есть связь.
Клиент и сервер работают на 64-битной Windows 7.
Также ; по какой-то причине каждый клиент, который подключается, получает свой собственный входящий порт или что-то в этом роде? Это нормально? Когда клиенты подключаются, сервер сообщает:
Accepted client: 192.168.178.22:55156
Accepted client: 192.168.178.22:55164
Accepted client: 192.168.178.22:55176
О чем это все?