日期:2014-05-18  浏览次数:21175 次

服务器如何实现被动让客户端下载,和主动发送数据的功能?
我有一台公网服务器,然后在局域内网有一台客户端.本来为了实现简单,做成了互相的C/S模式.但是发现,客户端连接服务器的时候,没有问题.可是服务器主动连客户端就不行.

查了下资料,好像有点难.请问高手,我这样的需求(被动下载,主动发数据,如何来实现呢?)

------解决方案--------------------
让服务器只作数据转发。
------解决方案--------------------
1. 每个Client连接Server时会开一个端口,你应该保持client端口(好像是代理服务器的IP)始终为打开状态。
2. Server上建立IP及端口与每个Client的映射关系然后共享这个列表。

另外有一个最简单的仿B/S方式(但低效的方法)。
每个client不断向Server发请求看有没有自己的消息或者向另一个client发消息。
------解决方案--------------------
因為客戶端不會偵聽,所以必須雙方保持連接,服務器才能發送數據到客戶端,一旦客戶端斷開了,服務器當然找不到客戶端了。
------解决方案--------------------
需要在局域网的代理服务器上作NAT映射,否则服务器是无法连在局域网内的机器的。或者用zbjg的办法
------解决方案--------------------
客户端需要实现一个 socket server才能保持一个listener让客户端调用,要不然就用前面的做法,由客户端
不停的向服务端发消息询问有什么需要做的。