我在Windows Server 2003中可以拥有的打开套接字数量的上限是多少

前端之家收集整理的这篇文章主要介绍了我在Windows Server 2003中可以拥有的打开套接字数量的上限是多少前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在用.NET构建一个聊天服务器.我尝试打开大约2000个客户端连接,我的Linksys WRT54GL路由器(带有番茄固件)每次丢失.当我在Azureus bit-torrent客户端上打开多个连接时,会发生同样的事情.

我有三个问题:

>我在Windows Server 2003中可以拥有的打开套接数量是否有限制?
> Linksys路由器是问题吗?如果是这样,建议使用更好的硬件?
>有没有办法可能共享套接字,以便我可以用更少的资源处理更多的开放客户端连接?

正如我之前提到的,Raymond Chen对这类问题提出了很好的建议:如果你不得不询问操作系统限制,那么你可能做错了什么. IP协议最多只允许65535个端口,其中许多端口是保留的,不能用于一般用途.我建议您需要更详细地考虑您的消息传递协议,以便OS限制不是问题.我确信有很多很好的资源来描述这样的系统,这里肯定会有人对它有很好的想法.

编辑:我将对实现可扩展的聊天服务器提出一些想法.

首先,在服务器上指定一个端口,供客户端进行通信.每当客户端需要更新聊天状态(例如,新的用户消息)时,请执行以下操作:

  1. create message packet
  2. open port to server
  3. send packet
  4. close port

然后服务器执行以下操作:

  1. connection request received
  2. get packet
  3. close connection
  4. process packet
  5. for each client that requires updating
  6. open connection to clients
  7. send update packet
  8. close connection

启动新的聊天会话时,启动会话的客户端会向服务器发送“新会话”消息,其中包含客户端用户详细信息和响应的IP地址.服务器创建新的聊天会话并使用会话ID进行响应.然后,客户端发送包含用户键入的消息的数据包,服务器处理它们并将消息转发给同一会话中的其他客户端.当客户端离开聊天时,它会向服务器发送“结束会话”消息.服务器从会话中删除客户端,并在会话中没有其他客户端时销毁会话.

希望能让你思考.

猜你在找的Windows相关文章