我正在使用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