首页 文章

Telnet客户端控制台:SEND无效命令 - 仅适用于西班牙语版本

提问于
浏览
0

我在QT C(带有侦听套接字的服务器)中开发了一个应用程序,等待客户端连接和发送命令 .

它是在Windows XP Professional版本2002 SP3英文版中开发和测试的,并在Windows 7 64位中使用telnet客户端使用保留字SEND从命令提示符向服务器发送字符串而没有问题 .

实际上我正在从另一个Windows XP专业版2002 SP3西班牙语版本的机器上测试这个应用程序,我遇到了发送字符串的问题 .

Telnet客户端正确连接,从服务器接收数据,但当我移动到命令提示符并尝试发送我收到的字符串并出错 .

Microsoft Telnet>发送MYSTRING

命令无效 . 输入?/求助

微软Telnet>?

命令可以缩写 . 支持的命令是:

c - 关闭当前连接

d - 显示显示操作参数

o - 打开主机名[port]连接到主机名(默认端口23) .

q - 退出telnet

set - set set options(为列表键入'set?')

sen - 将发送字符串发送到服务器

st - 状态打印状态信息

你 - 取消设置未设置选项(为列表键入'unset?')

?/ h - 帮助打印帮助信息

Microsoft Telnet> d

逃脱角色是'CTRL}'

将auth(NTLM身份验证)

本地回声

新行模式 - 使返回键发送CR和LF

当前模式:控制台

将术语类型

首选术语类型是ANSI

注意:上面的转录被翻译,我用西班牙语得到这个消息

我需要知道这个问题,telnet没有识别保留字是配置还是安全问题 .

Windows防火墙已停用 .

EDIT1:

要清除Telnet客户端问题的情况:

我开发了Windows XP 2002 SP3英文版的应用程序 . 此应用程序是在端口6000中侦听的网络中的服务器 . 等待客户端通过LAN连接(例如通过Telnet客户端) .

运行我的应用程序的电脑有IP1和它的工作 .

从具有相同操作系统的PC2开始,我使用> telnet IP1 6000进行连接,然后连接并从我的应用程序(服务器)接收数据 . 然后我按'ctrl}'进入Telnet提示Microsoft Telnet>发送AnyString AnyString已经发送到服务器 . 我的应用程序正确接收数据,处理它并正常工作 .

从使用W7和Ubuntu虚拟机的PC3,与PC2相同的程序,它工作正常 .

从PC4 os Windows XP SP3 2002西班牙语i连接使用> telnet IP1 6000和我连接并从我的应用程序(服务器)接收数据后 . 然后我按'ctrl}'进入Telnet提示Microsoft Telnet>发送AnyString无效命令 . 输入?/求助

这就是为什么我认为XP上的Telnet客户端可以“配置”?

1 回答

  • 1

    要使用telnet客户端通过TCP / IP发送文本消息,您只需要使用地址调用telnet(如果不是默认值23则使用端口),即:

    > telnet 192.168.1.1 13   // tell me your time
    > string to be sent       // type windows's enter
    >                         // should be sent as a text to 192.168.1.1 on port 13
    

    当我移动到命令提示符并尝试发送我收到的字符串和错误 . Microsoft Telnet>发送MYSTRING无效命令 . 输入?/求助

    该命令名为 sen ,而不是 send . 也许发送也是仙,但在帮助中只有仙才能更好地坚持下去 .

    您可以通过键入可能是'^]'的转义字符然后键入 sen 来转到telnet模式:

    > telnet 192.168.1.1 13
    > ctrl+]
    Microsoft Telnet> sen my string here
    >                         // should be sent as a text to 192.168.1.1 on port 13
    

    Microsoft telnet客户端sen命令终止带有null的字符串:当您键入5个字符 p i o t r 时,它会以00字节('\0')终止这5个字节,因此发送了6个字节:

    p  i  o  t  r  .
    70 69 6f 74 72 00
    

    如果Microsoft Telnet出现问题,您可以随时安装putty或编写一个简单的telnet客户端:

    void
    str_cli(FILE *fp, int sockfd) {
        char buf[MAXLINE];
        int n;
    
        for ( ;;) {
            if ((n = Read(fileno(fp), buf, MAXLINE)) < 0) {
                err_quit("str_cli:");
            }  
            Writen( sockfd, buf, n);
        }
    }
    
    int main( int argc, char** argv) {
        int         sockfd;
        struct sockaddr_in  servaddr;
    
        if (argc != 2)
            err_quit("usage: tcpcli <IPaddress>");
    
        sockfd = Socket(AF_INET, SOCK_STREAM, 0);
        bzero(&servaddr, sizeof(servaddr));
        servaddr.sin_family = AF_INET;
        servaddr.sin_port = htons( SERV_PORT);
        Inet_pton(AF_INET, argv[1], &servaddr.sin_addr);
    
        Connect(sockfd, (SA *) &servaddr, sizeof(servaddr));
    
        str_cli( stdin, sockfd);        /* do it all */
    
        close( sockfd);
    
        exit(0);
    }
    

相关问题