gpt4 book ai didi

java - 无需按回车即可通过 telnet 发送数据

转载 作者:搜寻专家 更新时间:2023-10-30 19:59:03 24 4
gpt4 key购买 nike

我最近开始研究 Java 套接字和 telnet...

我希望用户能够连接到服务器,只需键入一个字母并将其发送到服务器,而无需按回车键发送。我确定服务器没有办法设置它,但也许 telnet 有一个参数或可以允许这样做的东西?

也许如果我让用户在运行 telnet 之前键入 stty cbreakstty raw,这会起作用吗? (仅限 UNIX,我知道!)

如果我可以让 telnet 执行此操作,那么我就不必为此功能编写一个特殊的客户端...

最佳答案

实际上服务器请求这个的方法:它被称为telnet option negotiation .当您使用端口 23 和其他端口上的“cooked”(或“line”)模式时,telnet 通常会默认将本地 tty 配置为“原始”模式。行模式是您进行极简本地编辑的地方,当您按回车键时发送数据。

一旦禁用了线路模式,您就可以单独配置诸如本地回显之类的东西。

编辑:我认为合理的顺序是:

255, 253, 34,  /* IAC DO LINEMODE */
255, 250, 34, 1, 0, 255, 240 /* IAC SB LINEMODE MODE 0 IAC SE */
255, 251, 1 /* IAC WILL ECHO */

启用 TELOPT_LINEMODE (34),然后将行模式 LM_MODE 设置为 0(我认为这是告诉客户端的正确方法不要对任何本地编辑进行操作)。最后它说 WILL ECHO 表示服务器将回显(因此客户端不会)。

客户端(如果它支持 telnet 协商)将回复类似 IAC blah blah 的序列或像 IAC SB ... IAC SE 这样的“引用”序列,你可以检测并过滤掉您的输入流。

关于java - 无需按回车即可通过 telnet 发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4532344/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com