1. 苏葳的备忘录首页
  2. 软件

Windows下Telnet客户端的半/全双工或者字符/行模式发送问题

telnet 双工 字符 行unix下telnet 至某ip端口 输入字符,回车后,才会发送至该地址。但在win下,telnet至端口后,按任一键如a,则数据会立即发送至地址,导致无法发送长串字符。这大约是telnet的全双工与半双工,或者是字符和行模式的问题。无时间仔细研究,看了一些文档。

unix下的telnet,有mode 命令,可指定一次一字符或line by line即行模式,但有效与否并未测试成功。而win xp下,则telnet 中根本无mode命令 只有set mode console和stream选项,似乎与字符模式和行模式类似,但是测试两种模式,也没有区别效果,究其根本,还是没把unix下telnet 和win下的版本区别搞清楚。

研究这个问题的起因,是因为需要用telnet 往自己开发的一个服务中发送数据串,若用telnet发送,则无须另行开发客户端,且telnet各种操作系统均自带,无需安装,省事不少。然而在win下用telnet发送, 就遇到上述问题,按一字符即发送至服务端,而服务端收到数据,即时反应,没有针对回车换行符之类特殊处理。导致无法发送完整数据。若在unix平台下,telnet下输入后,只有回车后,才会发送至服务端,不存在这个问题。

研究了win 下的telnet许久,无设置全双工半双工工作模式的地方,未发现解决方法,但是突然想起telnet协议的send命令可发送数据串,一试,果然可行。在命令行窗口下操作如下:

telnet ip port

^]进入命令模式

send aaaaaaaaaaaaaaaaa

即可成功将成串数据发送至主机。既然如此,那就能够解决问题了。回头再说方法。

附带说明一下,win的汉化问题很多。

比如set mode命令的选项,注释中说明是“控制台还是流模式”,但让不懂英文的国人如何猜的出要写成set mode console还是stream呢?显然是对一些不常用的命令参数偷工减料。还有就是telnet 命令的-f参数,记得刚毕业时在win98下,telnet是可以实现自动登录执行命令的(或者是记错了是ftp?),那时好象telnet 要加一参数,不知是不是这个-f参数。而现在查看telnet ,只发现这个-f参数有点儿相似,帮助中说是“指定telnet的登录文件”,又让人头疼不已,何谓登录文件?是登录后自动执行的命令文本?看例子,却是log files,一般要理解成日志文件吧?测试了一下,系统自动创建了该名的空文件,却没有写入任何内容,看来还是日志文件的可能性大一些。难道Windows的汉化也依赖于机器翻译?

原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/311.html

发表评论

邮箱地址不会被公开。 必填项已用*标注

评论列表(1条)

  • 匿名
    匿名 2016年5月29日 02:59

    有帮助