想用C或C++作个简单的HTTP代理软件,但不知道HTTP和TCP有多大的不同,近来帮我看看可否?

rogear 2003-10-30 08:44:06
我想用C或C++作个简单的代理软件,装在一个局域网内的拨号服务器上,因为现在在外面不能访问公司内部的BBS,只能在局域网内才能访问,如果我在拨号的机器上装个代理软件,我在外网就连到我这个代理软件上,代理软件就自动给我转到bbs所在的服务器上,如果是tcp的到容易实现,我只要开一个端口,我在外网就连服务器这个端口,服务器再连接其它机器,代理软件作两边数据的透传,但不知道http的怎么作,另外,在给bbs服务器传送的时候,要把IP换成局域网内的网段地址,有谁知道怎么作吗?
...全文
91 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
rogear 2003-10-30
  • 打赏
  • 举报
回复
还有个不清楚,http走的是tcp方式,还是udp方式?
Wolf0403 2003-10-30
  • 打赏
  • 举报
回复
HTTP 是基于 TCP 的上层协议。如果你只是作一个 TCP 层面的数据转发,那么应该可以
fierygnu 2003-10-30
  • 打赏
  • 举报
回复
装个代理软件吧。HTTP和TCP是不同层的东西,http基于tcp。
rogear 2003-10-30
  • 打赏
  • 举报
回复
有哪位大哥有例子,丢给我一个看看如何?
fierygnu 2003-10-30
  • 打赏
  • 举报
回复
只服务器有公网IP是不行的,只能用NAT。

不需要知道HTTP包大小,根据协议内容接收处理就行了。TCP数据报大小对应用层没有意义,对于应用层而言TCP是无边界的字节流,只能自己定界。
rogear 2003-10-30
  • 打赏
  • 举报
回复
那个服务器有公网ip,怎么建立ssh隧道?不好意思,我以前没有做过HTTP方面的东东,问的问题可能很菜

还有,我从那个BBS服务器收取tcp包的时候,怎么知道一个包多少个字节呢?HTTP包一个TCP数据包内容有多大?
fierygnu 2003-10-30
  • 打赏
  • 举报
回复
你的内网没有公网IP的话,你的代理软件不能透明,必须要用NAT。

如果有公网IP,只是安全问题,建个SSH隧道就行了。
rogear 2003-10-30
  • 打赏
  • 举报
回复
那我在本端怎么访问呢?比如我在服务器上打开了一个5000的端口,等待外网的连接,外网一旦连接上这个5000端口之后,代理软件就建立一个到bbs服务器上80端口的tcp连接,然后就把5000上收到的消息透明传到bbs服务器上,从bbs服务器上收到的消息通过5000端口透明传到我远端的客户机上,我在客户机上怎么用呢?是不是一定要在客户机上再写一个客户端软件去连接远端的5000端口?还是直接可以在ie上这样连接“http://原端服务器IP地址:5000”?如果我在客户端上再写客户端软件,怎么通过本端的IE和客户端软件访问到我需要访问的那个BBS服务器呢?
Jinhao 2003-10-30
  • 打赏
  • 举报
回复
走的tcp,这个东西可以保证数据的完整性

4,356

社区成员

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

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