我正在编写一个类似MUD的游戏(如果重要的话,用Python编写)。我注意到Windows telnet客户端和Ubuntu的telnet客户端在连接服务器时的行为略有不同。
在Ubuntu中,我输入了一些内容,但是在按Enter键之前服务器没有收到任何内容。使用Windows,每次击键都会发送到服务器。
我希望每个连接的客户端展示我从Ubuntu获得的行为。我已经尝试实现缓冲服务器端,但我一直在遇到问题(最新的是我应该如何处理退格)。
我可以发送任何特殊命令来设置telnet客户端的“模式”吗?或者任何推荐的阅读,以更好地了解这里发生了什么?
更新:看起来我所要做的就是在一个人连接后立即运行以下行。
socket.send( chr(255)+chr(251)+chr(34) ) #IAC WILL LINEMODE
但是,这似乎没有任何效果。有人对我做错了什么有任何想法吗?
更新2:发现问题。我的服务器正在将从用户收到的所有内容发送给其他所有用户。这包括在我设置模式后从客户端获得的确认 - 这产生了一些非常棘手的结果。