c-Telnet从服务器启用线路模式

我正在使用面向行的telnet服务器,而不是客户端.

当前,要建立连接,我正在使用:

IAC DONT ECHO
IAC DONT SURPRESS-GO-AHEAD
IAC DO LINEMODE
IAC DO NAWS

当前,该服务器仅处理IAC AYT和与NAWS相关的内容.其他任何东西都被拒绝,像这样:

IAC DONT <OPTION>

但是,服务器仍然一次获得字符.

根据here,ECHO和SGA(同时)启用一次字符模式.但是,我都禁用了.
如何使客户端一次发送一行数据?

我正在使用GNU inetutils的telnet对此进行测试.

This question的标题与之相似,但是与标题相反,它涉及编写telnet客户端.

解决方法:

我只是检查了旧的telnet服务器源,然后从服务器端发送了WILL和WONT.我从客户端处理了DO和DONT.

您实际上是在尝试编码真正的telnet服务器,还是只是编码与一次一次发送数据的telnet兼容的服务器(例如基于文本的聊天或游戏服务器)?如果是后者,则可以取消大多数选择,因为根据我的经验,telnet客户端默认每次都排队.

对于我的游戏服务器(MUD),我在标准游戏模式下所做的一切就是在登录密码状态期间禁用/启用回显,或者进入字符模式并在用户调用PICO编辑器时启动伪tty.

更新:如果您打算认真编写telnet服务器或任何其他网络软件,我真的很喜欢经典的W. Richard Stevens系列. TCP / IP图解第1卷,该协议从实际的意义上涵盖了telnet,并且与RFC(如1184)(如果我记得)相结合,您将拥有所需的一切.

上一篇:GitLab and SSH keys(add new key)


下一篇:error: possibly undefined macro: AC_PROG_GNU_M4