我正在使用NetHack克隆,它应该像许多NetHack服务器一样通过Telnet进行播放。正如我所说,这是一个克隆,所以它是从头开始编写的,在Python上编写。Telnet服务器:保持连接打开的好习惯吗?
我已经从我写了前段时间的SMTP服务器设置我的socket服务器重用代码和所有的突然我的关注跃升到代码这一行:
s.listen(15)
我的服务器被设计成能够连接到15个同步客户端,以防与任何数据交换时间过长,但理想情况下,listen(1)
或listen(2)
就足够了。但这种情况是不同的。
当你telnet他们的NetHack服务器时,发生在Alt.org上,连接到我的服务器的人应该能够通过一个telnet会话远程播放我的roguelike,所以我猜这个连接不应该被中断。然而,我读过here是
[...]如果你真的持有超过128排队的连接请求你是一个 )时间太长对它们进行处理或b)需要一个重量级 分布式服务器或c)遭受DDoS攻击。
在这里进行的更好的做法是什么?我应该保持每个连接打开,直到连接的用户断开连接或有其他方式吗?我应该去listen(128)
(或者我的系统的socket.SOMAXCONN
)吗?或者这是一个不好的做法?
太棒了!不知道。非常感谢你! – Maralis