Как я могу отправить данные через Интернет на любой конкретный компьютер в подсети - PullRequest
0 голосов
/ 30 марта 2010

Я хочу знать, как я могу отправлять или получать данные через Интернет на / из компьютера в подсети (это особенно актуально для пользователей PPP, поскольку bcoz на практике получает не так много статических IP-адресов).

Я действительно хочу создать приложение, которое может передавать файлы между двумя конкретными компьютерами в глобальной сети.

так что же мне нужно знать, чтобы сделать то же самое .. (напр. НАСТОЯЩИЙ IP или MAC-АДРЕС и т.д ..)

ПОЯСНИТЕЛЬНОЕ ОБЪЯСНЕНИЕ ПРОГРАММНОЕ, НО НЕ НУЖНО ...

Ответы [ 6 ]

2 голосов
/ 30 марта 2010

В гугле огромный поток полезных результатов, я серьезно советую заглянуть в гугл, прежде чем вы спросите здесь.

Например, посмотрите на верхний результат: http://www.devarticles.com/c/a/C-Sharp/Network-Programming-in-C-sharp/

Кроме того, FTP, как предлагает Колин, может быть тем, что вы ищете. Если вы новичок в использовании FTP в C #, взгляните на http://www.google.com/search?q=c%23+ftp

2 голосов
/ 30 марта 2010
1 голос
/ 18 апреля 2012

Разместите информацию на общедоступном IP-сервере, чтобы оба компьютера продолжали опрашивать, если есть новые данные, и отправлять / загружать эти данные по мере необходимости. Один текстовый файл может содержать необходимые флаги, такие как пути и другую необходимую вам информацию.

сервер просто должен быть веб-сервером, что означает, что IIS или аналогичный должен быть установлен.

0 голосов
/ 28 декабря 2011

С того времени, до этой даты, у меня было так много проблем с этими четырьмя типами NAT, что в основном без внешнего сервера вы ничего не можете сделать. Это потому, что один компьютер никогда не сможет найти, где находится другой, как показано на рисунке.

The Communication Mechanism

Здесь ПК «А» никогда не узнает о порте, который соответствует ПК «В» на R2B без внешнего сервера. Даже больше, если вы как-то узнаете о портах, вы все еще находитесь в ситуации, когда маршрутизатор не позволит вам получить к нему доступ, если не был сделан запрос на ваш IP.

0 голосов
/ 10 марта 2011

Этот вопрос звучит для меня как трудности NAT Traversal и попыток установить одноранговое соединение через Интернет. Я наткнулся на этот вопрос, исследуя лучший способ настройки подключения к Интернету на устройстве, которое находится за брандмауэром. Я предполагаю, что устройство за брандмауэром должно инициировать соединение, что требуется приложение интернет-сервера (на общедоступном IP-адресе), по крайней мере, для управления инициированием соединения, и приложение интернет-сервера также может действовать как реле, если трудности NAT не могут быть пройдены.

http://en.wikipedia.org/wiki/NAT_traversal

http://en.wikipedia.org/wiki/Peer-to-peer

Хорошим примером этого является LogMeIn. Если приложение установлено на компьютере, который должен быть доступен через Интернет, это приложение обменивается данными с интернет-серверами LogMeIn, вы можете установить соединение с этим компьютером, инициировав его через серверы LogMeIn и подключившись к одноранговому порту. 80/443 с использованием NAT Traversal (это будет установление однорангового соединения) или путем инициирования через сервер LogMeIn и сервер LogMeIn, действующий как ретранслятор, если одноранговый узел не может быть установлен.

Обратите внимание; у вас должно быть приложение (что-то работающее) на обоих концах соединения в интернете, другого пути нет. Точно так же, как FTP, который был упомянут ранее (FTP-клиент, FTP-сервер) ... но в этом случае он является одноранговым (в основном вы пишете свой собственный клиент и сервер ... или если вам нужно использовать реле). .. Клиент - Реле - Сервер

http://en.wikipedia.org/wiki/LogMeIn

«Служба соединяет удаленный рабочий стол и локальный компьютер, используя SSL по TCP или UDP и используя методы обхода NAT для достижения однорангового подключения, когда оно доступно».

Часть, которую я не знаю, может ли реле идти в обоих направлениях; и я полагаю, что устройство за брандмауэром должно постоянно управлять открытым соединением с интернет-сервером, который является ретранслятором. Вот вопросы, с которыми я сейчас борюсь.

Кроме того, вы можете проверить этот пост. C # байтовые потоки через TCP

0 голосов
/ 30 марта 2010

Я думаю, что часть вашего вопроса связана с тем, что один из компьютеров не имеет статического IP-адреса. Если два компьютера, A & B, не знают IP-адреса друг друга, альтернативой является использование сервера. Либо A может хранить информацию на сервере, которую должен забрать B, либо A может зарегистрировать свой текущий IP-адрес на сервере, чтобы B мог найти и затем подключиться к A, предполагая, что брандмауэры не вмешиваются. Другая схема заключается в том, что A и B могут одновременно подключаться к серверу, а сервер может передавать данные между ними.

Конечно, все это общение будет осуществляться с использованием техник, которые предложены mafutrct и Colin.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...