多个进程共享同一个socket的个人观点

来源:互联网 发布:淘宝几个差评封店 编辑:程序博客网 时间:2024/05/18 06:49
论坛出现如下一个帖子,要在多个进程里面共享Socket, 而不是线程里面。

需求:
为了使游戏平台和具体的游戏,比如QQ游戏大厅和地主,杀人,放火游戏进程分离,但是却有要共享同一个socket连接

C/C++实现:在windowsc下编程实现可以用复制SOCKET句柄WSADuplicateSocket或共享内存的方式,但在java中不知用何种方式,或者类似的方式,我search了一下,似乎JOMP说的是共享内存,但却不知如何使用。还有真的有必要用这种方式实现游戏平台和具体的游戏分离吗,有什么更好的实现方式呢?


个人观点:

单独启动一个JVM做Socket代理,也就是消费者。
其它要共享socket的,都直接和他通信,方法随意,可以是本地socket,rmi,webservice

举例:
这个和我们局域网的代理服务器没有任何区别。
我们所有人上网,都是共享一个代理服务的。
局域网的每个机器都是生产者,把各自的读取请求发送给代理
代理作为统一的消费者,安排执行顺序并返回结果。
发送的方法很多,比如设置网关,本地设置代理服务器,本地安装软件。