好象可以使用HttpTunnel的技术,大致意思是这样的,不知道对不对,记符号 S(局域网外服务器) M(局域网对外服务器) C(局域网内部机器)普通情况下 C 向 M 发送 请求 S 的数据(网页内容)(假设通过端口 80) M 发送请求 S 的数据,S 把数据发给M, M 发送数据给 C 由于这条连接是一直可用的,假设我们要使用QQ所以可以在 S 上启动一个Http服务,这个服务把请求的数据转发到 S 上的QQ请求当收到QQ请求后,把得到的数据进行封装,做成Http服务的数据然后发送给请求方下面我们可以看这种情况下的数据传输 C 向 M 发送请求 S 的数据(Http) M 向 S 请求一个 Http 的数据 S 上的 HTTP 服务 收到请求后知道这是一个 关于 QQ 的请求 S HTTP 服务向 S 上的 QQ 服务发送一个请求 后面的过程上面已经说了 :) C 收到 M 传来的 Http 数据时,把QQ的数据分解出来 大致就是这样的 从上面的过程可以看出,你需要自己写一个 Http Server, 和Http Client 不过这个东西已经有现成的了,请 Google Httptunnel :D
联系了。但是外部机器直接想主动连接内部机器是不行的,否则怎么叫做内部呢?
在局域网内上qq之后,qq主动和qq服务器建立联接,服务器就可以qq通信了。
可是,问题在于,这条通路为什么能保留那么久,直到下线为止?而且,这条通路在qq上线期间一直都没有变,一直都是那条通路,想问的是,这条通路应该如何保持?
C 向 M 发送 请求 S 的数据(网页内容)(假设通过端口 80)
M 发送请求 S 的数据,S 把数据发给M,
M 发送数据给 C
由于这条连接是一直可用的,假设我们要使用QQ所以可以在 S 上启动一个Http服务,这个服务把请求的数据转发到 S 上的QQ请求当收到QQ请求后,把得到的数据进行封装,做成Http服务的数据然后发送给请求方下面我们可以看这种情况下的数据传输 C 向 M 发送请求 S 的数据(Http)
M 向 S 请求一个 Http 的数据
S 上的 HTTP 服务 收到请求后知道这是一个 关于 QQ 的请求
S HTTP 服务向 S 上的 QQ 服务发送一个请求
后面的过程上面已经说了 :)
C 收到 M 传来的 Http 数据时,把QQ的数据分解出来 大致就是这样的 从上面的过程可以看出,你需要自己写一个 Http Server, 和Http Client 不过这个东西已经有现成的了,请 Google Httptunnel :D