Telnet启用服务器的线路模式

时间:2014-07-16 17:11:07

标签: c linux networking gnu 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客户端的问题。

1 个答案:

答案 0 :(得分:3)

我刚检查了我的旧telnet服务器源,我从服务器端发送WILL和WONT。我从客户那里处理了DO和DONT。

您是否真的尝试编写一个真正的telnet服务器,或者只是一个与telnet兼容的服务器,它一次发送一行数据(如基于文本的聊天或游戏服务器)?如果是后者,您可以取消大多数选项,因为根据我的经验,telnet客户端默认一次排队。

对于我的游戏服务器(MUD ++),我在标准游戏模式下所做的就是在登录时在密码状态期间禁用/启用回声,或者在用户调用PICO编辑器时启动伪tty并启动伪tty。 / p>

更新:如果你打算认真地写一个telnet服务器或任何其他网络软件,我真的很喜欢经典的W. Richard Stevens系列。 TCP / IP Illustrated第1卷,协议 涵盖了实际意义上的telnet,再加上像1184这样的RFC(如果我还记得),你将拥有一切需要。