C# Http服务器-侦听响应

C# Http服务器-侦听响应,c#,http,service,request,listener,C#,Http,Service,Request,Listener,我已经阅读了以下关于创建简单http服务的文章: 在实施某些东西之前,我有点进退两难 我有一个服务向多个目的地发送http请求(同时限制最大目的地),并从每个目的地接收响应。 响应很短,如果请求处理正确与否,则只有状态(如果正常,则为200,或其他一些代码) 上面的文章在while循环中创建了一个侦听器,该侦听器被阻止并正在侦听请求 23 private static void Listen() 24 { 25 listener.St

我已经阅读了以下关于创建简单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          }
我需要向设备发送请求,并侦听每个设备的响应。 如果我得到一个响应,在循环返回到listen命令(31)之前,另一个响应是否可能错过


如果正在处理的http请求数量有限,我应该为每个侦听器创建一个侦听器,还是为每个侦听器创建一个侦听器更好?

您是否简化了ASP.net Webapi?这应该正是您需要的:-)
在这里,您还可以使用异步控制器,并且有大量的示例。

等待接受的TCP连接被放在连接待办事项列表中(默认为100 IIRC,您可以在侦听器构造函数中更改)。这意味着可以有100个并发TCP连接请求等待接受


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

“侦听响应”?通常,您发出请求并获得响应。这不是对HttpListener的描述,而是一个普通的旧http请求。为什么两端都需要倾听?你是说你点击了远程设备,然后它会向你发出自己的(单独的)请求吗?对发起请求发出响应不是更好吗?“在我看来,至少对你真正想做的事情有些困惑。”斯彭德我明白了。可能是我没有仔细考虑过。我的目标是向一长串目的地发送信息。每次信息传输都可以包含一个小的查询请求或一个文件到目的地的传输。我想同时提交最多X次传输,并等待响应。那么,在我的情况下,一个简单的普通请求就足够了?谢谢