请问各位高手
1、telnet时,如何判断服务器已经结束返回字符,由用户开始输入命令。
2、我想把telnet封装起来,让用户通过鼠标的选择操作实现telnet功能,自动的输入命令,请问有什么比较好的办法,哪位高人有例子程序,发一份给我,万分感谢。
email:[email protected]   [email protected]

解决方案 »

  1.   

    1.telnet开始时互相协商,规定通讯方式,按你的要求。有两种方式让用户输入字符。一种是发送一个字符,一个回显。表示服务器每次都知道你发送的东西,你可以继续不停的发,。2一串发。仍然可以回显。通过回显即可继续发了。表示服务器知道了。
    你是这样的意思吗?还是说服务器发送结束字符,你要知道?2,封装协商过程完了之后就封装命令老。有什么就封装什么老。
      

  2.   

    telnet好象不做你说的这种判断吧,它是收到什么显示什么。
      

  3.   

    http://www.thecodeproject.com/internet/telnet.asp
      

  4.   

    没有吧,telnet是要双方协商过的,我要是强制抑制回显的话,什么都不收到了啊。
    我找了一下。很久以前写的telnet,格式不太好。
    char telnet_iac_will_echo[] = {0xff,0xfb,0x01};   //请求对方协商回显   
    char telnet_iac_do_echo[] = { 0xff,0xfd,0x01};     //同意回显
    char telnet_iac_do_suppress_go_ahead[] = { 0xff,0xfd,0x03 };          //抑制继续进行
    char telnet_iac_sb_terminal_type_send[] = { 0xff,0xfa,0x18,0x01,0xff,0xf0 };    //发送请求对方终端类型
    char telnet_iac_sb_terminal_type_is_ansi[] = { 0xff,0xfa,0x18,0x00,0x41,0x4e,0x53,0x49,0xff,0xf0 }; //返回终端类型ANSI
    char telnet_iac_sb_terminal_type_is_vt100[] = { 0xff,0xfa,0x18,0x00,0x56,0x54,0x31,0x30,0x30,0xff,0xf0 }; //返回终端类型vt100
    char telnet_iac_will_terminal_type[] = { 0xff,0xfb,0x18 };  //会执行终端发送
    char telnet_iac_wont_nega_size[] = { 0xff,0xfc,0x1f};       //不允许窗口大小协商
    char telnet_enter[] = {0x0d,0x0a};                                    //回车发送
      

  5.   

    to GR(终于重新开始用MFC,捡起来好累)
    假设我把telnet封装起来,看不到服务器回显什么,只是通过程序判断,那如何取得服务器已经回显结束,我可以进行下一步操作了呢????
      

  6.   

    不是很明白,你把TELNET封装起来,跟服务器回显是有关联得吗?,你得意思是不是只管发送,不用回显来证明服务器已经收到。只要SETN成功,不RECV,直接NEXT?,只要必要协商通过。TELNET有一些必要协商,比如终端类型等等。这些通过。你可以这样干得。sent成功则下一步,不过没有RECV,错误判断不就没了吗?,有RECV了,回显就来了。处理一下应该没什么大问题吧,也有利于调试
      

  7.   

    那很容易啊,recv就行了。拿来得字符一判断全搞定了。