Эй, я просто начинающий в сети.Прямая сеть TCP/IP между двумя устройствами Android через Интернет
Можно ли подключить два устройства Android друг к другу с использованием сокетов через Интернет без использования промежуточного выделенного сервера, учитывая, что в соединениях Wi-Fi и GPRS/3G есть маршрутизаторы Nat.
Я слышал, что сначала необходимо отправить исходящее сообщение на другое устройство, тогда только NAT разрешит этому устройству ответить вам. Но когда оба устройства за NAT, как первое сообщение или пакет достигнет любого из них?
EDIT: Observation-> Когда я запрашиваю местонахождение своего публичного IP-адреса, я получаю случайные места , как и в других городах, а иногда и в других штатах !!! Что случилось? может кто-нибудь объяснить?
Таким образом, вы можете связаться с сервером, который предоставит вам общедоступный IP-адрес и порт, которые может использовать другое устройство для вас! не так ли? но когда оба устройства отстают от упомянутого ограниченного конуса (ip или порт) NAT, как устройство может связаться с другим даже после его ip и порта – Allahjane
Да, это более или менее корректно. В разделе «Алгоритм» статьи Википедии о пробивании отверстий TCP приведены некоторые примеры методов: http://en.wikipedia.org/wiki/TCP_hole_punching –