TCP / IP客户端循环.NET

时间:2016-09-18 14:07:38

标签: asp.net .net tcp-ip

我实际上在一个Web应用程序(ASP.NET MVC)上工作,该应用程序将命令发送到TCP / IP中的本地网络上的胖客户端应用程序(我无法修改)。我需要胖客户端应用程序响应我的命令或给我信息,所以连接需要一直打开。我创建了一个循环来检查服务器响应:

public static async void getMessage()
        {
            while(true)
            {
                // Buffer to store the response bytes.
                Byte[] data = new Byte[100000];

                // String to store the response ASCII representation.
                String responseData = String.Empty;

                // Read the first batch of the TcpServer response bytes.
                Int32 bytes = await stream.ReadAsync(data, 0, data.Length);
                if (bytes == 0) continue; 
                responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);
                Debug.Write(responseData);

                await stream.ReadAsync(data, 0, data.Length);
            }
        }

这实际上正在工作,我收到了服务器的响应,但是浏览器正在等待localhost"所有的时间,有没有更好的方法来做到这一点,没有浏览器上的循环?

非常感谢你!

1 个答案:

答案 0 :(得分:5)

对于websocket而言,这听起来非常好。在MVC应用程序中,您通常使用SignalR:http://www.asp.net/signalr