pranav8265 Ответов: 0

Создание прослушивателя портов с помощью программирования на языке c#.


Я хочу создать прослушиватель портов, который продолжает прослушивать порт и сохранять данные в текстовом файле или XML-файле.Я не посылаю никакого ответа, просто слушаю порт.Я нашел следующее.Но это дает ошибку "запрошенный адрес недопустим в его контексте".Где я совершаю ошибку?Я новичок в программировании сокетов, поэтому, пожалуйста, предложите мне подходящее решение для этого.

Console.WriteLine("Starting echo server...");

            int port = 1234;
            TcpListener listener = new TcpListener(IPAddress.Parse("192.168.2.162"),port); 
            listener.Start();

            TcpClient client = listener.AcceptTcpClient();
            NetworkStream stream = client.GetStream();
            StreamWriter writer = new StreamWriter(stream, Encoding.ASCII) { AutoFlush = true };
            StreamReader reader = new StreamReader(stream, Encoding.ASCII);

            while (true)
            {
                string inputLine = "";
                while (inputLine != null)
                {
                    inputLine = reader.ReadLine();
                    writer.WriteLine("Echoing string: " + inputLine);
                    Console.WriteLine("Echoing string: " + inputLine);
                }
                Console.WriteLine("Server saw disconnect from client.");
                Console.ReadLine();
            }

Richard MacCutchan

Есть ли у вас устройство, подключенное к этому IP-адресу и Порту?

gggustafson

Что означает точка 192.168.2.162 получить?

Nathan Minier

1. Убедитесь, что адрес правильно привязан к вашей сетевой карте.
2. Убедитесь, что кто-то другой не использует этот порт.
3. Ваша система, скорее всего, настроена так, чтобы требовать прав администратора для открытия порта на внешнем IP-адресе.

Итак, простой способ проверить это:
Попробуйте запустить этот код против порта на локальном хосте loopback (127.0.0.1) для тестирования; это обычно не требует прав администратора.

Если это работает, делегируйте права порта учетной записи службы, которую вы планируете использовать для запуска программы через netsh urlacl

0 Ответов