Как передать данные с одного компьютера на другой, если они в разных сетях — c#?
Пускай у меня есть два компьютера:
- один в локальной сети с "белым" ip 12.34.56.78 и имеет "серый" ip 192.168.0.2
- другой в локальной сети с "белым" ip 78.56.34.12 и имеет "серый" ip 192.168.0.3
Задача состоит в передаче массива байтов с одного компьютера на другой средствами c#. Примеры TCP/UDP-чатов нашел только те, которые работают внутри локальной сети и не более.
P.S. Читал про проброс портов, что нужно настраивать сам роутер. Из этого вытекает тогда другой вопрос - почему при скачивании чего-нибудь при помощи torrent'та не нужно настраивать роутер? Передача самого файла ведь происходит peer-to-peer.
Griboks, почему p2p требует сервера? Повторюсь, мне известны ip-адреса обоих роутеров и "серые" ip обоих компьютеров. Неужели нет средств отправить данные с одного адреса на другой напрямую?
А по запросу "c# P2P" выдает встроенный MS-овский протокол PNRP, который мне не особо нужен.
На одном из роутеров делаешь проброс порта.
Либо настройками роутера, либо средствами upnp, nat-pmp и т.д.
В торренты и иже с ними протоколы автоматического проброса порта встроены очень давно