Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 同时建立多个连接的最佳方式是什么?_C#_Multithreading - Fatal编程技术网

C# 同时建立多个连接的最佳方式是什么?

C# 同时建立多个连接的最佳方式是什么?,c#,multithreading,C#,Multithreading,我正在制作一个程序,需要在我的网站上建立多个连接,并保持它开放几个小时!所以,假设我想建立300-500个连接,并保持它们5个小时,如果我为每个连接使用线程,大约需要多少CPU?有没有其他方法可以代替使用线程来执行此操作,因为这将占用大量CPU?使用异步套接字API 异步服务器套接字示例 异步客户端套接字示例 使用异步服务器套接字 是一种选择。另一个是考虑使用网络库,它提供了使用线程或异步连接的选项,或者,。 免责声明:我是NetworkComms.Net的开发人员。HTTP作为应用程序消息

我正在制作一个程序,需要在我的网站上建立多个连接,并保持它开放几个小时!所以,假设我想建立300-500个连接,并保持它们5个小时,如果我为每个连接使用线程,大约需要多少CPU?有没有其他方法可以代替使用线程来执行此操作,因为这将占用大量CPU?

使用异步套接字API

异步服务器套接字示例

异步客户端套接字示例

使用异步服务器套接字 是一种选择。另一个是考虑使用网络库,它提供了使用线程或异步连接的选项,或者,


免责声明:我是NetworkComms.Net的开发人员。

HTTP作为应用程序消息协议不会保持消息的来回流动,但只交换一对消息;请求和响应,因此从应用程序的角度来看,它是一个无连接协议。面向连接的TCP部分仅用于保证请求中所有数据或响应中所有数据的成功传递


因此,谈论保持HTTP连接从服务器打开是没有意义的。服务器可能会进行分块编码,假装它可以发送多条回复消息,但这在经验上是行不通的。

这是服务器/客户端示例,但我的网站已经托管,我无法对其进行任何更改。我将如何使用它?您是在编写服务器还是webapp(使用其他服务器,如IIS或Apache)?是的,我在使用Apache。这个网站是用PHP编写的。如果是这样,忽略这个答案,以及你得到的所有其他答案。在问题中提到您正在使用Apache/PHP。并将其标记为Apache+PHP,而不是c#和多线程。我不是在说TCP,而是从应用程序协议的角度。我希望编辑改进了我想说的。你能控制什么?你需要更明确一点吗?您是否控制web服务器?不要使用线程。使用线程解决这个问题就像雇佣500名秘书来发送500封信。@EricLippert是的,我理解。这就是为什么我要求一个替代的解决方案,但我还没有找到一个。。。