TcpListener, реализованный для консольного приложения, не работает в WF - C#
Формулировка задачи:
Почему пример работы с TcpListener работает только на консольном приложении, а если вставить его в WF то программа просто виснет и не хочет работать
TcpListener server = null; try { // Set the TcpListener on port 13000. Int32 port = 13000; IPAddress localAddr = IPAddress.Parse("127.0.0.1"); // TcpListener server = new TcpListener(port); server = new TcpListener(localAddr, port); // Start listening for client requests. server.Start(10); // Buffer for reading data Byte[] bytes = new Byte[256]; String data = null; // Enter the listening loop. while (true) { // Perform a blocking call to accept requests. // You could also user server.AcceptSocket() here. TcpClient client = server.AcceptTcpClient(); data = null; // Get a stream object for reading and writing NetworkStream stream = client.GetStream(); int i; // Loop to receive all the data sent by the client. while ((i = stream.Read(bytes, 0, bytes.Length)) != 0) { // Translate data bytes to a ASCII string. data = System.Text.Encoding.ASCII.GetString(bytes, 0, i); // Process the data sent by the client. data = data.ToUpper(); byte[] msg = System.Text.Encoding.ASCII.GetBytes(data); // Send back a response. stream.Write(msg, 0, msg.Length); } // Shutdown and end connection client.Close(); } } finally { // Stop listening for new clients. server.Stop(); }
Решение задачи: «TcpListener, реализованный для консольного приложения, не работает в WF»
textual
Листинг программы
while (true) { Application.DoEvents(); // Вот чего мне не хватало)))) if (tcpListener.Pending() == true) { client = tcpListener.AcceptTcpClient(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д