Как на сокетах связать 2 компьютера в разных сетях.?
Кто может подсказать возможно ли связать 2 машины в разных сетях через внешний IP. Или только через сервер на хостинге можно. К примеру написал программу удаленного доступа с полным набором операций с файлами, с загрузкой и скачиванием файлов с удаленной машины, но работает только внутри локальной сети. А мне хотелось бы, к примеру, что бы находясь в Китае я смог бы подключиться к удаленной машиной.
Придумал только решение соединение через прокси, но тогда все данные будут проходить через чей-то Хостинг, и мне что-то страшно становиться, какие есть решение.Данный вопрос не на эту программу рассчитан.
Нужен принцип реализации, не программы.
Все варианты решения, которые я находил используют схему. Клиент->Сервер->Клиент. Или вот такие Клиент->Сервер(получает сокет и bind-ит его с другим клиентом.) В итоге получается связь Клиент<->Клиент2.
А можно ли сделать связь сразу Клиент<->Клиент2
Кучно пошло.
Вам поможет NAT.
Только вы боитесь прокси. А открывать слушающий порт в интернет вы не боитесь? Бойтесь! Как только вы выйдите в мир, вас тут же начнут ломать - начнутся подключения с левых адресов, подбор паролей и т.д. и т.п. Поэтому без серьезной подготовки софта лучше не выставлять его в инет.
Организуйте ВПН и выставляйте вашу программу внутри ВПН.
teamViwer как я понял, через сервер устанавливает связь, принимая ключ, от клиента, и после этого связывает его с удаленной машиной. А без сервера ни как нельзя.