强制telnet客户端进入字符模式

8 default telnet char

我有一个应用程序,我接受来自telnet客户端的套接字连接,并建立一个简单的,键盘驱动的字符GUI.

telnet客户端,至少在Linux上,默认为一次一行模式,所以我总是需要^]mode char手动完成.

相关RFC的略图表明,如果我的应用程序只是IAC DONT LINEMODE (\377\376\042)在客户端连接后立即发送字符,则应强制客户端进入字符模式.但是,它没有任何区别.

什么是最简单的代码才能完成这项工作?理想情况下只是一个要发送的字符串.我的应用程序可以吸收客户端发回的任何垃圾.

小智 8

有趣.我发送的运气更多了

IAC WILL ECHO IAC WILL SUPPRESS_GO_AHEAD IAC WONT LINEMODE
255  251    1 255  251                 3 255  252       34
Run Code Online (Sandbox Code Playgroud)

IAC WONT LINEMODE似乎是多余的:我的telnet客户端似乎在没有它的情况下达到了正确的状态,但我将其保留为完整性.


小智 6

为了它的价值,我自己解决了.

// IAC WONT LINEMODE IAC WILL ECHO

write(s,"\377\375\042\377\373\001",6);
Run Code Online (Sandbox Code Playgroud)

获取远程(至少从Linux机箱上的Xterm telnet)到正确的状态.