Почему TcpListener никогда не принимает TcpClient? [закрыто] ⇐ C#
-
Anonymous
Почему TcpListener никогда не принимает TcpClient? [закрыто]
У меня есть устройство, которое действует как TcpClient и отправляет TCP-пакеты на заданный IP-адрес в моей сети.
Когда я запускаю стандартную программу TcpListener (из официальной документации), она зависает в инструкции server.AcceptTcpClient() и так и не может обнаружить соединение.
Я использовал Wireshark, чтобы проверить, действительно ли пакеты отправляются, и это так.
Я проверил, что пакеты являются TCP и что SYN отправляется. Они помечаются как повторяющиеся порты, поскольку никогда не принимаются хостом.
Это мой код (скопированный и слегка измененный из документации MS выше).
соединение публичного статического класса { public static void Connect (int port) { Сервер TcpListener = ноль; пытаться { IPAddress localAddress = IPAddress.Parse("127.0.0.1"); сервер = новый (локальный адрес, порт); // Начинаем слушать клиентов сервер.Старт(); // Цикл прослушивания пока (правда) { Console.WriteLine("Ожидание соединения..."); // Ждем, пока клиент подключится Клиент TcpClient = server.AcceptTcpClient(); // НИКОГДА НЕ РАЗБЛОКИРУЕТСЯ // Закрываем соединение клиент.Закрыть(); } } поймать (SocketException e) { Console.WriteLine("Исключение сокета: ", e); } окончательно { // Перестанем слушать клиентов сервер.Стоп(); } } }
У меня есть устройство, которое действует как TcpClient и отправляет TCP-пакеты на заданный IP-адрес в моей сети.
Когда я запускаю стандартную программу TcpListener (из официальной документации), она зависает в инструкции server.AcceptTcpClient() и так и не может обнаружить соединение.
Я использовал Wireshark, чтобы проверить, действительно ли пакеты отправляются, и это так.
Я проверил, что пакеты являются TCP и что SYN отправляется. Они помечаются как повторяющиеся порты, поскольку никогда не принимаются хостом.
Это мой код (скопированный и слегка измененный из документации MS выше).
соединение публичного статического класса { public static void Connect (int port) { Сервер TcpListener = ноль; пытаться { IPAddress localAddress = IPAddress.Parse("127.0.0.1"); сервер = новый (локальный адрес, порт); // Начинаем слушать клиентов сервер.Старт(); // Цикл прослушивания пока (правда) { Console.WriteLine("Ожидание соединения..."); // Ждем, пока клиент подключится Клиент TcpClient = server.AcceptTcpClient(); // НИКОГДА НЕ РАЗБЛОКИРУЕТСЯ // Закрываем соединение клиент.Закрыть(); } } поймать (SocketException e) { Console.WriteLine("Исключение сокета: ", e); } окончательно { // Перестанем слушать клиентов сервер.Стоп(); } } }
Мобильная версия