| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Сети > Связь между двумя компьютерами с динамическими IP |
| Автор: Чупакабро 7.7.2011, 18:50 |
| Есть UDP клиент и сервер (совмещены в одной программе). В локальной сети (или в ее эмуляции с помощью программ вроде Hamachi) все замечательно работает, данные передаются. Когда пытаюсь установить связь между компьютерами через интернет, соответственно ничего не работает. Айпишники динамические. Что делать, как быть? |
| Автор: xkor 9.7.2011, 01:06 |
хотите чтобы вам помогли - выражайтесь конкретнее, тут не телепаты сидят... программа учитывает возможные потери UDP пакетов? размеры у этих пакетов не слишком большие? чем больше размер тем на больше число кусков он будет разбит из за MTU (которое в инете может быть крайне мелким) и тем выше вероятность что пакет не дойдет. |
| Автор: Чупакабро 9.7.2011, 15:31 |
| я немного уточню динамические айпишники известны на момент подключения дело не в том, что я не знаю, куда коннектиться, а в том, что нет этого коннекта размеры пакетов делал разными от 128 до 2048 байт |
| Автор: kami 9.7.2011, 17:01 |
адрес одного из компьютеров в студию. при работе по UDP говорить о "коннекте" несколько некорректно, ибо его на самом деле нет (в отличие от TCP) |
| Автор: Чупакабро 10.7.2011, 12:34 | ||||
91.215.79.94 Код сервера:
Код клиента:
|
| Автор: xkor 10.7.2011, 13:27 |
| а IP эти выдаются компам на которых программа или компы за натом? |
| Автор: Чупакабро 10.7.2011, 15:23 |
| компы за роутером, как минимум) ну и доступ в инет через локалку наверное подразумевает NAT а айпишники я по ламерски смотрю через Яндекс "мой ip" (91.215.79.94 ), то есть на самих компах-то другие ip, типа 192.168.1.103 - они выдаются роутером |
| Автор: kami 10.7.2011, 15:34 |
Это не по-ламерски. Это правильно. Внутренние IP здесь не помогут. Вот только доступ через NAT связан с большими трудностями. Единственное, что я нашел в интернете - оба компьютера для установления обмена должны сперва "подолбиться" корреспонденту. Тогда временно установится разрешение на прохождение пакетов из внешнего мира в локалку. Потому что изначально пакет уходит от клиента, проходит через NAT спокойно, доходит до места, где должна пройти переадресация "внешний IP"=>"внутренний IP", и там зависает, потому что у маршрутизатора есть разрешение выпускать изнутри, а вот про переадресацию снаружи внутрь он не знает. |
| Автор: Чупакабро 10.7.2011, 15:46 |
| то есть маршрутизатор будет думать, что он получает пакеты в ответ на выпущенные и станет переадресовывать входящие вовнутрь? если так, то забавно) сервер должен заранее знать всех клиентов p.s. Спасибо за помощь! |
| Автор: kami 10.7.2011, 16:24 |
Это не помощь, а предположение |
| Автор: Akella 22.7.2011, 11:02 |
| Чупакабро, почитай http://forum.vingrad.ru/topic-48020/125.html некоторым помогает |