gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 16:37:47 25 4
gpt4 key购买 nike

我正在使用 .NET 构建聊天服务器。我已经尝试打开大约 2000 个客户端连接,但我的 Linksys WRT54GL 路由器(带有番茄固件)每次都死机。当我在我的 Azureus 比特流客户端上打开多个连接时,也会发生同样的事情。

我有三个问题:

  1. 在 Windows Server 2003 中打开套接字的数量是否有限制?
  2. 是 Linksys 路由器的问题吗?如果有,是否有更好的硬件推荐?
  3. 有没有可能共享套接字的方法,以便我可以用更少的资源处理更多开放的客户端连接?

最佳答案

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

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

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

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

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

希望这能让你思考。

关于sockets - 我在 Windows Server 2003 中可以拥有的打开套接字数的上限是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/594336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com