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

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

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

请各位赐教!
...全文
99 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanglovec 2010-04-24
  • 打赏
  • 举报
回复
看 emule 他里面有实现 。
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";
chichenzhe 2010-04-15
  • 打赏
  • 举报
回复
客户端程序 ----http get--> 服务器程序 80端口

在客户端写个简单的 http client不就行了. 任何语言都有 http client的写法.
至于服务端,写个http server也不难.

不知道你想用什么语言来开发.

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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