Господа, подскажите. Делаю два приложения (Клиент и Сервер). Когда они установлены на одном компьютере - всё работает. Когда они установлены в локальной сети - всё работает. Устанавливаю их на двух компеьютерах, подключённых к Интернету, ввожу IP-адреса, присваемые компьютерам при регистрации в интернете, порты, но ничего не работает. Проверяю IPSniffer-ом, сообщение по протоколу TCP отправляется, все поля заполнены правильно. Почему оно не приходит на другой компьютер?
Зайдите на http://myip.ru с сервера и проверьте, совпадает ли высвечиваемый адрес с тем, что вам показывает ipconfig. Если нет - значит у сервера серый IP, без специального проброса порта вовнутрь через NAT работать не будет. Если все нормально, то еще может быть засада из-за стандартноых настроек безопасности виндового файрвола. У него бывает для локальной сети все разрешено, для интерента - только исходящие соединения и несколько специально перечисленных входящих. Попробуйте отключить файрвол на сервере для начала. Ну и для простоты - проверяйте коннект с клиента на порт сервера прямо телнетом с указанием порта: telnet xxx.xxx.xxx.xxx номер_порта (желательно выполнять из командного процессора, чтоб увидеть результаты коннекта).
Использую 3G модемы MTC. IP адреса присваиваются динамически. Вот сейчас: ipconfig мне выдаёт 10.1.8.218 myip.ru выдаёт 85.117.224.61 Есть ли какой-нибудь вариант в данной ситуации связать два компьютера?
По-правильному - только через промежуточный хост с белым IP. Ну теоретически есть еще возможность подобрать трансляции обоих NAT так, чтоб согласованно угадались внешние порты (внешние IP-адреса, конечно же, надо заранее знать), но это будет требовать хитрых манипуляций, особенно на сервере, где придется перемежать попытки установки связи от заданного порта и установку порта на listen.