Http服务器-正在侦听响应

本文关键字:响应 服务器 Http | 更新日期: 2023-09-27 17:59:50

我已经阅读了以下关于创建一个简单http服务的文章:用C创建一个简单的线程HTTP服务器#在实施某件事之前,我有点左右为难。

我有一个向多个目的地发送http请求的服务(同时最多发送一个目的地),并从每个目的地接收响应。响应很短,如果请求处理正确与否,则只有一个状态(如果可以,则为200,或一些其他代码)。

上面的文章在while循环中创建了一个侦听器,该侦听器被阻止并正在侦听请求。

23          private static void Listen()
24          {
25              listener.Start();
26              WriteLog("Listening On: " + port.ToString());
27   
28              while (true)
29              {
30                  WriteLog("Waiting for connection...");
31                  TcpClient client = listener.AcceptTcpClient();
32                  Thread listenThread 
                       = new Thread(new ParameterizedThreadStart(ListenThread));
33                  listenThread.Start(client);
34              }
35          }

我需要向设备发送请求,并听取每个设备的响应。如果我得到一个响应,并且直到循环返回到侦听命令(31),另一个响应是否会溜走?

如果我处理的http请求数量有限,我应该为每个或一个监听器创建一个监听器吗?

Http服务器-正在侦听响应

您是否协调了ASP.net Webapi?这应该是您所需要的:-)在那里你也可以有异步控制器,有很多例子。

等待accept的TCP连接被放入连接囤积中(默认情况下为100 IIRC,您可以在侦听器构造函数中更改它)。这意味着可能有100个并发TCP连接请求等待接受。

因此,除非您有超过该数量的连接等待处理,否则您不会丢失任何连接。