Простая сетевая справка (C# WinForms)

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

Я прочитал документы и видел буквально более 30 примеров, ни один из которых никогда не работал.

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

Но ничего никогда не работает. Я бы опубликовал пример кода, но я думаю, что это было бы бессмысленно, поскольку все разные образцы дали мне разные ошибки и т. д. Вот список ошибок, которые мы получаем:

1: Невозможно подключиться к цели, потому что удаленная машина активно отказывается от этого. 2: Тайм-аут соединения.

Может кто-нибудь, пожалуйста, помогите мне понять это?

Заранее большое спасибо

Редактировать: 1. Кроме того, мы оба пытались полностью отключить все брандмауэры. Это совсем не помогло. 2. Я пробовал перебирать доступные порты, но это тоже ничего не изменило.


person jay_t55    schedule 16.01.2010    source источник
comment
Какой метод вы используете для подключения? У вас есть пример кода, который поможет нам понять, что может быть не так?   -  person Michael Todd    schedule 16.01.2010
comment
Что происходит, когда вы пытаетесь пропинговать IP-адрес вашего друга? Вы также можете попробовать трассировку.   -  person Paul Sasik    schedule 16.01.2010
comment
он говорит что-то об успешно отправленных и полученных пакетах, поэтому я думаю, что пинг работает :)   -  person jay_t55    schedule 16.01.2010
comment
Я только что понял, что это, вероятно, связано с ошибкой сервера. Не хочу быть злым... но там тебе скорее всего помогут.   -  person Paul Sasik    schedule 16.01.2010
comment
@Paul Sasik, этот вопрос не относится к stackoverflow (по крайней мере, на данный момент), поскольку он связан с программированием. Он мог бы улучшить, добавив некоторые соответствующие фрагменты кода.   -  person Vivek Bernard    schedule 16.01.2010
comment
хорошо, я добавлю фрагмент кода, который я только что нашел на своем старом диске   -  person jay_t55    schedule 16.01.2010


Ответы (2)


Может быть пара причин

1) Работает ли образец локально

2) вы используете настоящий IP-адрес, предоставленный вашим интернет-провайдером.

Потому что IP-адреса типа 192.168.1.* или 172.16.. не будут работать в Интернете (это можно узнать, погуглив «мой IP-адрес»)

eg is 117.197.199.138

3) Если вы или ваш друг используете динамический IP-адрес, он может время от времени меняться, что также может быть причиной того, что он не работает.

person Vivek Bernard    schedule 16.01.2010
comment
Образец действительно работал локально, хотя у меня больше нет этого образца, но я пытаюсь найти его снова. И да, я использую свой настоящий IP вот так: 117.197.199.138 и т.д. - person jay_t55; 16.01.2010
comment
и да, мой друг не использует динамический ip. у него статическая, и у меня тоже. - person jay_t55; 16.01.2010
comment
Является ли этот статический IP-адрес фактическим IP-адресом компьютера вашего друга или он находится за маршрутизатором NAT (его компьютер имеет IP-адрес, например, 192.168.*.*? Если это так, вам необходимо настроить переадресацию портов на маршрутизаторе. - person shf301; 16.01.2010

Одна из проблем заключается в том, что ваш интернет-провайдер может блокировать все запросы к серверу. Некоторые интернет-провайдеры не позволяют вам запускать сервер, если вы не платите за тариф для бизнеса.

person Paul Sasik    schedule 16.01.2010
comment
Отдельно: я использую Abyss Web Server для своего веб-сайта, и люди могут подключаться к нему со своих компьютеров, чтобы получить доступ к моему сайту. Это отдельно от программы, но я думаю, что это доказывает мне, что мой интернет-провайдер не блокирует мне запуск сервера ... Я также позволил моему другу быть сервером, пока я пытаюсь подключиться к нему, и это тоже не работает - person jay_t55; 16.01.2010
comment
На каком порту у вас работает этот веб-сервер? Иногда выборочно убивают определенные порты. Что-то, что вы можете сделать, это установить номер порта для вашего приложения на порт Abyss, отключить его, конечно, и снова tr. - person Paul Sasik; 16.01.2010
comment
я только что попробовал это. к сожалению не повезло. но спасибо за предложение - person jay_t55; 16.01.2010