Russian Qt Forum

Qt => Работа с сетью => Тема начата: Anarion от Октябрь 20, 2010, 21:07



Название: TCP клиент-сервер: компы в разных локальных сетях (разные внешние ip) .
Отправлено: Anarion от Октябрь 20, 2010, 21:07
Доброго всем времени суток.
Впервые занялся программированием поддержки сети. Разобрался с примером клиента-сервера, который приводится в книге Шлее. Как организовать обмен между компьютерами с прямыми (т.е. не через роутер, например) внешними ip вопросов нет. Но вот когда одна из сторон или обе находятся в разных локальных сетях, не могу понять, как можно программно установить соединение.
Чтобы с другого компьютера могли соединиться с моим (по созданному у меня QTcpServer) я сделал в настройках роутера  (в его web-интерфейсе) переброс порта на свой комп. Но ICQ-клиенты или скайп работают без такого ручного вмешательства в роутер. Собственно вопрос:можно ли это сделать средствами Qt и куда копать?
Заранее благодарен.


Название: Re: TCP клиент-сервер: компы в разных локальных сетях (разные внешние ip) .
Отправлено: BlackTass от Октябрь 21, 2010, 00:03
Таже самая аська сама коннектится к серверу, а не сервер к ней. Скайп насколько помню использует метод UDP-пробивания в NAT'е (но это лучше использовать, только когда понимаешь как ведет себя сеть на уровне хотя бы до IP).


Название: Re: TCP клиент-сервер: компы в разных локальных сетях (разные внешние ip) .
Отправлено: crackedmind от Октябрь 21, 2010, 08:42
Доброго всем времени суток.
Впервые занялся программированием поддержки сети. Разобрался с примером клиента-сервера, который приводится в книге Шлее. Как организовать обмен между компьютерами с прямыми (т.е. не через роутер, например) внешними ip вопросов нет. Но вот когда одна из сторон или обе находятся в разных локальных сетях, не могу понять, как можно программно установить соединение.
Чтобы с другого компьютера могли соединиться с моим (по созданному у меня QTcpServer) я сделал в настройках роутера  (в его web-интерфейсе) переброс порта на свой комп. Но ICQ-клиенты или скайп работают без такого ручного вмешательства в роутер. Собственно вопрос:можно ли это сделать средствами Qt и куда копать?
Заранее благодарен.
Qt тут не причем. Тут уже зависит от того как настроен роутинг в активном оборудование. С точки зрения конечной программы нужен только ip адрес. Лучше книжку по сетям почитайте.


Название: Re: TCP клиент-сервер: компы в разных локальных сетях (разные внешние ip) .
Отправлено: Anarion от Октябрь 21, 2010, 11:27
Спасибо за наставление на путь истинный. Поскольку соединение организую через QTcpSocket и QTcpServer, думал, что может в них чего-то можно изменить, поэтому и упомянул Qt.