| 最新文章 |
| 热门文章 | ||||||||||||
|
||||||||||||
| 当前位置:李露的博客 >> 电脑技术 >> 浏览文章 |
|
echoware是一个用作中转服务的系统。其基本原理是这样的:当网络双方有人在内网时,那么想要主动连接内网的用户,直接连是不行的。现在有的方式是使用TCP和UDP打洞,像很多P2P软件就是这样处理的,这种方式可行性也比较高,80%以上的网络都可以支持(主要是内网NAT设备支持)。还有一种方式就是使用第三方作为中转,这种方式能保证100%的连接到达,但因为有第三方中转,所有双方的数据交互会比直接交互慢。 今天就讲一个使用echoware这个服务作为中转的使用实例。 先大概说一下运行流程。客户端C要连接服务端S,直连是最简单和普通的方式,但如果有一方处于NAT后面,或者防火墙后面,那么直连就会出问题。使用UDP打洞技术,是有一个第三方服务器告诉C和S双方的地址,然后让他们自己主动连出去。echoware的流程则是,C和S都连接上第三方中转服务器echoServer,然后再通过echoServer建立连接,并且以后的数据交互也要通过echoServer。 echoware官方提供的例子程序有好几个,我刚开始是整了很长时间才把这个逻辑思路搞清楚。严格说起来,它的运行流程由五部分组成:客户端C,客户端的echoware——Cechoware,echoware中转服务器echoServer,服务端的echoware——Sechoware,服务端S。 客户端C只需要连接Cechoware,服务端S实际上也只需要连接Sechoware,他们两个根本就不需要连接网络,都只是连接的本机的echoware端。然后Cechoware和Sechoware去连接网络,就是连接echoServer。所以在使用时一定要把这个逻辑思路搞清楚,不然编程去做时,死活都连不上。 我先把例子程序和代码贴上: 客户端和服务端的运行截图: 服务端的编写流程主要是这样: WSAStartup启动套接字 客户端会有写差别,主要流程是: ConnectProxy连接echoServer
|
| 【发表评论】【告诉好友】【打印此文】【收藏此文】【关闭窗口】 | |