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

时间:2014-05-22 13:48:44

标签: c++ qt sockets windows-xp telnet

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

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

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

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

Microsoft Telnet>发送MYSTRING

命令无效。输入?/求助帮助

Microsoft Telnet> ?

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

c - 关闭当前连接

d - 显示显示操作参数

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

q - 退出退出telnet

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

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

st - 状态打印状态信息

u - 取消设置未设置的选项(为列表键入'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连接,然后连接并从我的应用程序(服务器)接收数据。然后我按下&#c; ctrl +}'并获得Telnet提示Microsoft Telnet>发送AnyString AnyString已发送到服务器。我的应用程序正确接收数据,处理它并正常工作。

从PC3使用W7和Ubuntu虚拟机,程序与PC2相同,并且工作正常。

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

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

1 个答案:

答案 0 :(得分: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 ,而不是发送。也许发送也是仙,但在帮助中,只有仙才能更好地坚持下去。

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

> 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 client sen命令以null结束字符串:当您键入5个字符p i o t r时,它会以00字节(&#39; \ 0&#39;)终止这5个字节,因此发送了6个字节:< / p>

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);
}