加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

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

发布时间:2020-12-13 20:39:08 所属栏目:Windows 来源:网络整理
导读:我正在用.NET构建一个聊天服务器.我尝试打开大约2000个客户端连接,我的Linksys WRT54GL路由器(带有番茄固件)每次丢失.当我在Azureus bit-torrent客户端上打开多个连接时,会发生同样的事情. 我有三个问题: 我在Windows Server 2003中可以拥有的打开套接字数
我正在用.NET构建一个聊天服务器.我尝试打开大约2000个客户端连接,我的Linksys WRT54GL路由器(带有番茄固件)每次丢失.当我在Azureus bit-torrent客户端上打开多个连接时,会发生同样的事情.

我有三个问题:

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

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

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

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

create message packet
open port to server
send packet
close port

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

connection request received
get packet
close connection
process packet
for each client that requires updating
  open connection to clients
  send update packet
  close connection

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

希望能让你思考.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读