gpt4 book ai didi

c++ - Telnet 客户端控制台 : SEND invalid command - Only for Spanish version

转载 作者:行者123 更新时间:2023-11-28 06:51:56 35 4
gpt4 key购买 nike

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

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

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

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

Microsoft Telnet> 发送 MYSTRING

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

微软远程登录> ?

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

c – close 关闭当前连接

d – display 显示运行参数

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

q – 退出远程登录

set – 设置设置选项(键入“set?”以获得列表)

sen – 发送字符串到服务器

st – status 打印状态信息

u – unset 未设置选项(输入“unset?”以获得列表)

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

微软远程登录> d

转义符是‘CTRL+}’

Will auth(NTLM Authentication)

本地回显关闭

换行模式——返回键发送 CR & LF

当前模式:控制台

遗嘱类型

首选术语类型是 ANSI

注意:上面的转录是翻译的,我收到的这条消息是西类牙语

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

Windows 防火墙已停用。

编辑1:

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

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

运行我的应用程序的电脑有 IP1 并且可以正常工作。

在具有相同操作系统的 PC2 上,我使用 >telnet IP1 6000 进行连接,然后在我连接并从我的应用程序(服务器)接收数据后。然后我按“ctrl+}”并进入 Telnet 提示 Microsoft Telnet> send AnyString AnyString 已发送到服务器。我的应用程序正确接收数据、处理数据并正常运行。

PC3 使用 W7 和 Ubuntu 虚拟机,程序与 PC2 相同,运行良好。

从 PC4 操作系统 Windows XP SP3 2002 西类牙语,我使用 >telnet IP1 6000 进行连接,在我连接并从我的应用程序(服务器)接收数据后。然后我按“ctrl+}”并进入 Telnet 提示 Microsoft Telnet> send AnyString Invalid command。输入 ?/help 寻求帮助

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

最佳答案

要使用 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

when i move to command prompt and try to send strings i receive and error.

Microsoft Telnet> send MYSTRING

Invalid command. type ?/help for help

命令名为sen,而不是send。也许发送也是 sen,但在帮助中只显示 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 客户端 sen 命令以空值终止字符串:当您键入 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);
}

关于c++ - Telnet 客户端控制台 : SEND invalid command - Only for Spanish version,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23808769/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com