怎么在自己的程序里用http隧道?

robot_zyt 2010-04-14 05:31:15
我们有一个客户端程序,装在顾客机器上,现在想用http隧道穿过防火墙,连上服务器端程序。

那关于http隧道我想问一下,怎么加到自己的程序里,是不是服务器端侦听80端口,把客户端的tcp通信数据打包成http包,然后连接发到服务器端,服务器端解析处理后然后又以http包的形式反馈数据? 如果是这样,那自己的tcp通信数据怎么打包,放在http包的哪里?

请各位赐教!
...全文
100 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
heikefangxian9 2010-04-15
  • 打赏
  • 举报
回复
呼唤楼主来结贴
Yofoo 2010-04-15
  • 打赏
  • 举报
回复
楼主说的方法可以, 具体如何打包你可以自己决定, 关键要能还原, 如base64
Q490627987Q 2010-04-15
  • 打赏
  • 举报
回复
学习学习……
heikefangxian9 2010-04-15
  • 打赏
  • 举报
回复
你用socket编程的话,在客户端构造http数据包,然后将其send()到服务端。
服务端recv()后,将这个包按照http格式进行解析就可以了。
robot_zyt 2010-04-15
  • 打赏
  • 举报
回复
没人帮忙吗?
robot_zyt 2010-04-15
  • 打赏
  • 举报
回复
我能直接在http发送二进制数据或文件吗,有人说http是一种文本协议,必须经过base64等转码吗?
robot_zyt 2010-04-15
  • 打赏
  • 举报
回复
关键是怎么构造http数据包,是不是直接这样,在pData里面放自己的数据就可以了 ?

str = CString("POST /")+ CString(sStrPost) +" HTTP/1.1" + "\r\n";
str = str + "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword */*" + "\r\n";
str = str + "Referer: http://" + CString(Server) + "/";
str = str + CString(Url) + "\r\n";
str = str + "Accept-Language: zh-cn" + "\r\n";
str = str + "Content-Type: application/x-www-form-urlencoded\r\n";
str = str + "Accept-Encoding: gzip, deflate" + "\r\n";
str = str + "User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0; MyIE 3.01)" + "\r\n";
str = str + "Host: " + CString(Server);
str = str + "\r\n";
str = str + "Content-Length: " + strLength + "\r\n";
str = str + "Connection: Keep-Alive" + "\r\n";
str = str + "Cache-Control: no-cache" + "\r\n" + "\r\n";
str = str + CString(pData) + "\r\n" + "\r\n";
str = str + "\r\n";

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧