栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

通过telnet发送数据而无需按Enter

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

通过telnet发送数据而无需按Enter

您应该能够通过telnet选项协商来做到这一点。 该协议默认为半双工模式,并且至少对于交互式会话,服务器应协商“
抑制前进”选项
和“
回声”选项。

最起码,您可以

ff fb 01
ff fb 03
在会话开始时吐出(会回声,会抑制前进),然后
ff fd 01
用
ff fb01
(会回声)回复任何
ff fd 03
(做回声)并回复任何(做回声,前面)
ff fb 03
(将抑制前进)。

编辑 以补充本杰克逊提到的线路模式协商是一个更好的答案。对于大多数非23端口连接的客户端,抑制超前运行是不够的。

但是,我认为您遇到的另一个问题是Java正在发送Unipre字符。例如,当你说

(char)0xff
,爪哇假设你指的是UTF-16字符
U+00ff
是
ÿ
。它可能是使用UTF-8编码通过套接字发送的,所以telnet客户端看到两个字节:
c3bf
它继续传递并显示为
ÿ
。

您可以做的是明确告诉Java使用ISO-8859-1编码。例如,您之前可能已经做过这样的事情:

out = new PrintStream(connection.getOutputStream());out.print((char)0xff);  // sends 0xc3 0xbfout.print((char)0xfb);  // sends 0xc3 0xbbout.print((char)0x01);  // sends 0x01out.flush();

相反,您可以使用OutputStreamWriter指定所需的编码:

out = new OutputStreamWriter(connection.getOutputStream(), "ISO-8859-1");out.write((char)0xff);  // sends 0xffout.write((char)0xfb);  // sends 0xfbout.write((char)0x01);  // sends 0x01out.flush();


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/595418.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号