Telnet客户端控制台:发送无效命令-仅适用于西班牙语版本 我在QT+C++(带有侦听套接字的服务器)中开发了一个应用程序,等待客户端连接和发送命令。
它是在Windows XP Professional Version 2002 SP3英文版中开发和测试的,并在Windows 7 64位中测试,使用telnet客户端使用保留字SEND从命令提示符向服务器发送字符串,没有问题 实际上,我正在另一台Windows XP Professional Version 2002 SP3西班牙语版机器上测试这个应用程序,我在发送字符串时遇到了问题 Telnet客户端正确连接,从服务器接收数据,但当我移动到命令提示符并尝试发送字符串时,我收到了错误消息 Microsoft Telnet>发送MYSTRING 无效命令。键入?/help以获取帮助 Microsoft Telnet> 命令可以缩写。支持的命令包括: c–闭合电流连接 d–显示操作参数 o–打开主机名[端口]连接到主机名(默认端口23) q–退出telnet 设置–设置设置选项(键入列表的“设置”) sen–向服务器发送字符串 st–状态打印状态信息 u–取消设置未设置选项(键入“取消设置”可查看列表) ?/h–帮助打印帮助信息 Microsoft Telnet>d 转义字符为“CTRL+}” 将进行身份验证(NTLM身份验证) 局部回波关闭 新行模式–使返回键发送CR和LF 当前模式:控制台 将使用术语类型 首选术语类型为ANSI 注:上面的抄本是翻译过来的,我收到的这封信是西班牙语的 我需要知道这个问题,telnet不识别保留字是配置问题还是安全问题 Windows防火墙已停用 编辑1:Telnet客户端控制台:发送无效命令-仅适用于西班牙语版本 我在QT+C++(带有侦听套接字的服务器)中开发了一个应用程序,等待客户端连接和发送命令。,c++,qt,sockets,windows-xp,telnet,C++,Qt,Sockets,Windows Xp,Telnet,它是在Windows XP Professional Version 2002 SP3英文版中开发和测试的,并在Windows 7 64位中测试,使用telnet客户端使用保留字SEND从命令提示符向服务器发送字符串,没有问题 实际上,我正在另一台Windows XP Professional Version 2002 SP3西班牙语版机器上测试这个应用程序,我在发送字符串时遇到了问题 Telnet客户端正确连接,从服务器接收数据,但当我移动到命令提示符并尝试发送字符串时,我收到了错误消息 Mi
要清除Telnet客户端出现问题的情况,请执行以下操作: 我在WindowsXP2002SP3英文版中开发了一个应用程序。此应用程序是网络中侦听端口6000的服务器。等待客户端通过lan连接(例如通过Telnet客户端)
运行我的应用程序的电脑具有IP1及其工作模式 从具有相同操作系统的PC2,我使用>telnet IP1 6000进行连接,然后从我的应用程序(服务器)连接并接收数据。然后我按下“ctrl+}”,进入Telnet提示符Microsoft Telnet>send AnyString AnyString已发送到服务器。我的应用程序正确接收数据,处理数据,工作正常 从使用W7和Ubuntu虚拟机的PC3开始,程序与PC2相同,并且工作正常 从PC4 os Windows XP SP3 2002西班牙语中,我使用>telnet IP1 6000进行连接,然后从我的应用程序(服务器)连接并接收数据。然后我按下“ctrl+}”,进入Telnet提示符Microsoft Telnet>send AnyString无效命令。键入?/help以获取帮助
这就是为什么我认为XP上的Telnet客户端可以“配置?”要使用Telnet客户端通过TCP/IP发送文本消息,您只需使用地址调用Telnet(如果不是默认的,则应使用端口23),即: 当我移动到命令提示符并尝试发送字符串时,我会收到 错误 Microsoft Telnet>发送MYSTRING 无效命令。键入?/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 client sen命令以null终止字符串:当您键入5个字符时,它以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);
}
void
str_cli(文件*fp,int-sockfd){
char buf[MAXLINE];
int n;
对于(;;){
如果((n=Read(fileno(fp)、buf、MAXLINE))<0){
错误退出(“str_cli:”);
}
写入(sockfd,buf,n);
}
}
int main(int argc,字符**argv){
int-sockfd;
servaddr中的结构sockaddr_;
如果(argc!=2)
err_quit(“用法:tcpcli”);
sockfd=套接字(AF_INET,SOCK_STREAM,0);
bzero(&servaddr,sizeof(servaddr));
servaddr.sin_family=AF_INET;
servaddr.sin_port=htons(SERV_port);
Inet\u pton(AF\u Inet,argv[1],&servaddr.sin\u addr);
连接(sockfd,(SA*)和servaddr,sizeof(servaddr));
str_cli(stdin,sockfd);/*全做*/
关闭(sockfd);
出口(0);
}
要从cmd发送,您必须调用带有参数的.exe或telnet来发送文本:键入string,键入enter-然后发送,但在另一台电脑(send命令工作的地方)中,不必在cmd行中键入字符串。连接到服务器(我的应用程序)后,可以使用scape character ctrl+}移动到telnet命令模式,并在那里键入命令。SEND是一个保留的telnet命令,在这里无法识别……您提到的第二个选项是我制作的过程,并且工作正常。当我更换PC时,相同的操作系统不同的语言,来自telnet的sen命令无效。这是我的问题。应用程序正在运行,telnet客户端也在另一台电脑上运行。我想这是一个配置问题,你说的是正确的,它已经解决了。telnet客户端似乎有不同的版本/配置。当我键入>sen MYSTRING时,我从telnet控制台获得无效命令。它甚至没有被发送。@mezeq您说您键入了Microsoft Telnet>send MYSTRING,然后您得到了Error以解决Telnet客户端的问题(sen和send是等价物):我在Windows XP 2002 SP3英文版中开发了一个应用程序。此应用程序是网络中侦听端口6000的服务器。等待客户端通过lan连接(例如通过Telnet客户端)。运行我的应用程序的pc具有IP1及其工作模式。从具有相同操作系统的PC2,我使用>telnet IP1 6000进行连接,然后从ap连接并接收数据
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);
}