写入C#套接字

本文关键字:套接字 写入 | 更新日期: 2023-09-27 18:28:00

我正在编写一个服务器,该服务器在特定端口侦听来自浏览器的请求,例如http://23.10.222.151:20000/mac=0080440EEE71。我得到浏览器套接字,然后检查它的请求,在本例中为mac=2280440FFF23。我查看该设备是否已连接,如果未连接,我想显示一个页面,上面写着"设备:{0}尚未在服务器上注册!请稍候…"

TcpClient client = listener.AcceptTcpClient();
Console.WriteLine("Connection Accepted from " + client.Client.RemoteEndPoint);
NetworkStream ClientStream = client.GetStream();
if( !devDictionary.isDevicePresent(mac))    
{
    Thread onRequestThread = new Thread(new ParameterizedThreadStart(OnRequesstHandler));
    onRequestThread.Start(new OnRequestHandlerObject(mac, ClientStream));
    String notfound = String.Format("<html><body><h1>Device: {0} has NOT registered with the Server! Please wait...</h1></body></html>", mac);
    byte[] response = encoder.GetBytes(notfound);
    ClientStream.Write(response, 0, response.Length);
}

线程不断检查设备是否已连接。如果是,则它使用相同的ClientStream显示它。但该页面不会立即显示。它保持循环,当设备连接时,它会快速连续显示两个页面。如何立即显示第一页?

写入C#套接字

HTTP是一个相关协议。您不仅要向客户端发送HTML内容,而且首先需要发送一个消息头。

从现成的东西开始,而不是裸露的插座。举个例子,看看这里。