Невозможно установить соединение, потому что целевая машина активно отказалась от него - Socket C # - PullRequest
1 голос
/ 17 января 2012

Привет, ребята, я пытаюсь создать приложение клиент-сервер на c #. Оно работает на локальном компьютере, но я хочу работать через интернет, но у меня появляется эта ошибка, когда я ввел свой ip:

No connection could be made because the target machine actively refused it

Проверено, что мой брандмауэр выключен.

вот мой код. Жаль, что вы не могли бы помочь ..

enter image description here

Ответы [ 5 ]

1 голос
/ 17 января 2012

Привет, ребята, я пытаюсь создать приложение сервер-клиент в c #

Известно ли вам о networkComms.net и, в частности, коротком примере, демонстрирующемсамая основная функциональность здесь ?Это было написано специально для людей, пишущих сервер-клиентские приложения на c #, и учитывая, что большинство проблем, с которыми вы можете столкнуться, уже решены, и это может сэкономить вам время.

1 голос
/ 17 января 2012

При тестировании подключения есть несколько простых шагов для базового тестирования.

  • попытайтесь пропинговать целевой компьютер
  • , если целевой компьютер является локальным, тогда используйте адрес 127.0.0.1, если вседругие адреса терпят неудачу
  • отключить брандмауэр
  • проверить, запущена ли служба / приложение сервера
  • попытаться подключиться по telnet к адресу и порту этой службы, чтобы проверить, открыт ли порт
  • убедитесь, что никакое другое приложение не удерживает порт открытым.Вы можете сделать это, используя netstat утилиту

В вашем конкретном случае мне кажется, что вы пытаетесь подключиться к маршрутизатору, а не к машине, на которой вы размещаете приложение.Выполните ipconfig /all в командной строке, чтобы увидеть все IP-адреса, которые есть у вашей машины.

0 голосов
/ 17 января 2012

Ссылка содержит полный пример программирования Socket, который действует как FTP.Программа проверяет размер файла, и если он превышает 1 МБ, он разделяет файлы и объединяет их в папке назначения.

PS: Ваш код - не лучшее, что вы можете получить.Там может быть много улучшений.Это из одного из моих старых блогов, которые я не обновлял.http://vinayhoskere.blogspot.com/2010/11/file-transfer-using-socket-programming.html

Надеюсь, это поможет.

0 голосов
/ 17 января 2012

Похоже, что вы достигли целевой машины, но там нет ничего, чтобы обработать ваше соединение.

0 голосов
/ 17 января 2012

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

...