使用Telnet/Hercules/Raw套接字的HTTP-over-TCP/

使用Telnet/Hercules/Raw套接字的HTTP-over-TCP/,http,sockets,tcp,Http,Sockets,Tcp,我正在作为客户端连接到远程服务器上的实时数据。我想将以下内容发送到服务器并保持连接打开。这是一个“推送”协议 http://server.domain.com:80/protocol/dosomething.txt?POSTDATA=thePostData 我可以在浏览器中调用它,这很好。但是,如果我试图在windows命令提示符中直接使用telnet,提示符就会退出 GET protocol/dosomething.txt?POSTDATA=thePostData 如果我使用Putty

我正在作为客户端连接到远程服务器上的实时数据。我想将以下内容发送到服务器并保持连接打开。这是一个“推送”协议

http://server.domain.com:80/protocol/dosomething.txt?POSTDATA=thePostData
我可以在浏览器中调用它,这很好。但是,如果我试图在windows命令提示符中直接使用telnet,提示符就会退出

  GET protocol/dosomething.txt?POSTDATA=thePostData
如果我使用Putty.exe并选择Telnet作为协议,情况也是如此。我根本看不到用Hercules实现这一点的方法,因为我认为服务器不会解释GET

我有什么办法可以做到这一点吗

谢谢。

如果你想使用telnet,你必须将邮件与信件匹配。尝试以下方法:

shell$ telnet www.google.com 80
Trying 173.194.43.50...
Connected to www.google.com (173.194.43.50).
Escape character is '^]'.
GET / HTTP/1.1
Host: www.google.com:80
Connection: close

HTTP/1.1 200 OK
Date: Tue, 11 Sep 2012 15:09:51 GMT
...
您需要键入以下行,包括“连接”行后的“空行”


啊。。。。我忘了,他们默认关闭了本地回音。开始时只运行
telnet
,不带任何参数。然后键入
set localecho
,然后
打开www.google.com 80
。您应该能够使用几乎任何理解telnet的终端仿真器。您应该能够将TCP套接字连接到端口80并发送相同的文本。只需确保使用CR-NL对(
“\r\n”
)终止行,并在标题后面包含空行。然后阅读响应,完成后关闭插座。再次感谢您的帮助。我发送数据时没有收到任何回复。我想我的语法不正确。我正在使用Hercules(TCP客户端)执行此操作:在80上连接到server.domain.com。我得到了一个“连接”的回复。然后我发送这个:GET\r\n/protocol/dosomething.txt?POSTDATA=thePostData\r\nHTTP/1.0\r\n\r\n我尝试过各种排列,但都没有用。当我发送这个时,我甚至没有得到谷歌的响应:
GET/HTTP/1.0\r\n\r\n
GET / HTTP/1.1
Host: www.google.com:80
Connection: close