为什么在程序里telnet比命令行方式下的慢这么多?(100分)

  • 主题发起人 主题发起人 breeze
  • 开始时间 开始时间
B

breeze

Unregistered / Unconfirmed
GUEST, unregistred user!
我用ics的WSocket控件实现一telnet的客户端,
结果在连接上服务器(某交换机)以后,先是接收到一小段数据,
"? ? ?"之类的,然后过了十几秒钟才收到剩余部分的
数据,而这个过程如果在命令行方式的telnet下进行,
只需1~2秒,这部分数据量也不大,约500Bytes左右(也就是
显示一屏多点)。
为什么同样的操作在命令行方式下和在程序里会
有这么大的差异?怎么样可以让它快一点?
盼高手指教!


 
命令行是文本传输,直接操作,
程序里要进过编译处理,肯定慢
 
问题是,它连接也不很慢,以后的接收也不很慢,更要命的是,
连接别的服务器也不是这么慢
 
是不是你的程序没有及时把收到的信息处理而已,不应该有什么区别
 
一开始接收到的是握手信息
Telnet客户端应该对握手信息进行处理
握手信息的内容是协商双方如何进行通讯。
参见http://www.delphibbs.com/delphibbs/dispq.asp?lid=428910
 
to GOHKI:
我仔细研究了http://www.delphibbs.com/delphibbs/dispq.asp?lid=428910,还
是没有发现问题所在。对于握手信息应当作怎样的处理,能否给一段详细点的示例?
thanks!
 
一开始的握手信息大致是以下格式
TNL_IAC,TNL_DO,TNO_ECHO
表示服务器要求客户端进行本地回显,其他协商类似,TNL_SB(子协商)比较特殊
这时客户端应该根据自己的能力回应,如TNL_IAC,TNL_WILL,TNO_ECHO
如果不想涉及协商的问题,可以用ics里的telnet控件
 
  通过阅读ics的源码,问题已解决 
 
后退
顶部