TCP to TCP 数据转发

来源:互联网 发布:windows linux shell 编辑:程序博客网 时间:2024/04/30 12:37

TCP to TCP 数据转发

作者:dozb
MSN:yiqianfeng@hotmail.com
需要转载请联系作者

目的
    我们部门在内网有一台Web服务器A,用于部门文档信息管理,可分公司的员工,或出差的员工,都不能直接访问这台机器。
所以还得把发邮件来完成文档的提交。如何实现外地员工能访问Web服务器A呢?公司有一台可以访问外网的机器B,要是在B上运行
一个数据转发程序,固定地把外网发送到某个端口的数据转发到A上的Web端口,同时把A上回送的数据转发出去,不就一切OK了吗!


设计
//主程序
Main()
{
   beginthread(Main Thread());
}

//主线程
Main Thread(Param)
{
   创建"本地监听SOCK"
   while(true)
   {
      等待客户端连接
      等到后,创建"目标SOCK"
      连接到目的地
      连接成功后,创建"Wait Thread"
   }
}
//Wait 线程 
Wait Thread(Param)
{
  创建"连接SOCK"->"目标SOCK"数据转发Thread
  创建"目标SOCK"->"连接SOCK"数据转发Thread
  等待这两个线程结束
  释放SOCK资源
}
//TCP2TCP数据转发线程
TCP2TCP Thread(Param)
{
   SOCK FROM,TO
   while(read  >0)
   {
 read(From,Buff);
 Send(To,Buff);
   }
}

参考代码

http://dozb.blogchina.com/1649975.html