我正在制作一个程序,需要在我的网站上建立多个连接,并保持打开几个小时!那么,假设我想建立300-500个连接并将它们保持5个小时,如果我为每个连接使用线程,它需要多少CPU?有没有其他方法可以做到这一点,而不是使用线程,因为它需要大量的CPU?
答案 0 :(得分:1)
使用异步套接字API。
异步服务器套接字示例 http://msdn.microsoft.com/en-us/library/fx6588te.aspx
异步客户端套接字示例 http://msdn.microsoft.com/en-us/library/bew39x2a.aspx
使用异步服务器套接字 http://msdn.microsoft.com/en-us/library/5w7b7x5f.aspx
答案 1 :(得分:0)
WCF是一种选择。另一种方法是考虑使用网络库,它允许您选择使用线程或异步连接,NetworkComms.Net或lidgren。
免责声明:我是NetworkComms.Net的开发人员。
答案 2 :(得分:-2)
HTTP作为应用程序消息协议不会保持消息的来回流动,但只交换一对;请求和响应,从应用程序的角度来看,它是一个无连接协议。面向连接的TCP部分只是为了成功传递请求中的所有数据或响应中的所有数据。
因此,谈论保持HTTP连接从服务器打开是没有意义的。服务器可能会进行分块编码以假装它可以发送多条回复消息,但这不符合经验。