`
java2000.net
  • 浏览: 632384 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

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

    博客分类:
  • JAVA
阅读更多

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

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


个人观点:

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

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

1
2
分享到:
评论
1 楼 dennis_zane 2008-09-29  
还有个东西叫管道,管道通信,我们的服务器是这样搞的。nio server+多进程

相关推荐

    QT 多进程通信

    用qt 写的一个多进程 通信的例子. 利用qprocess 启动多个外部进程,利用QSharedMemory共享内存 实现消息交换。如果跨机子就需要写socket了

    进程通信.doc

    B、共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。 C、通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)...

    Swoole Shared Memory是为了解决 Swoole 常驻内存场景,多进程变量共享问题而开发的组件

    Swoole Shared Memory( 以下简称 SSM )是为了解决 Swoole 常驻内存场景,多进程变量共享问题而开发的组件。...你只需要在 Swoole 自定义进程中启动 SSM 服务来监听 Unix Socket,或者也可以启动一个独立的 SSM 服务。

    Python通过Manager方式实现多个无关联进程共享数据的实现

    如果多个进程不是源于同一个父进程,只能用共享内存,信号量等方式,但是这些方式对于复杂的数据结构,例如Queue,dict,list等,使用起来比较麻烦,不够灵活。 Manager是一种较为高级的多进程通信方式,它能支持...

    进程间通信之无名管道(pipe) 完整代码

    1 只能用于具有亲缘关系的进程之间的通信 2 SIGPIPE信号的处理 七种进程间通信方式: 一 无名管道( pipe ) 二 有名管道( fifo ) 三 共享内存 shared memory 四 信号 sinal 五 消息队列 message queue ) 六 ...

    android进程间socket传递Ashmem的文件描述符

    android传递大文件的话,第一想到的就是匿名共享内存了,但是进程间怎么共享匿名共享内存的。试想进程A创建匿名共享内存,进程B怎么得共享内存读出数据?熬得凌晨2点多写个demo,备忘和分享!

    进程间通信之共享内存 shared memory 完整代码

    进程间通信之共享内存 shared memory ) 1 效率最高 2 存在竞态 七种进程间通信方式: 一 无名管道( pipe ) 二 有名管道( fifo ) 三 共享内存 shared memory 四 信号 sinal 五 消息队列 message queue ) ...

    一个进程池的服务器程序

    一个进程池的服务器程序 下面做了非常简单的http服务器,该服务器只能接收Get请求。 流程大概如下: 1,父进程listen,创建pipe(下面所有父子进程之间的通信都用该pipe) 2,父进程预fork n个子进程 3,各个子...

    进程间通信之有名管道(fifo) 完整代码

    如果只打开有名管道的一端 则系统将暂时阻塞打开进程 直到有另一个进程打开该管道的另一端 当前进程才会继续执行 七种进程间通信方式: 一 无名管道( pipe ) 二 有名管道( fifo ) 三 共享内存 shared memory ...

    socket简单因特网通信工具

    很简陋的一个chat软件(为一个朋友写的),这里就作为一个资源共享了吧! 需要注意的有: 1.在开启客户端中的上线功能时,先开启服务端的检测按钮 2.弹出提示你输入远程主机ip连接时,请输入你要聊天人的ip地址(也...

    Ruby-Einhorn语言无关的共享socket管理器

    Einhorn - 能够开放共享一个或多个套接字并你进程的多个副本。你可以无缝地重新加载代码,动态重新配置Einhorn等等

    多进程数据共享-易语言

    由于其它原因,不想用 窗口消息/文件映射/socket 等进行跨进程通信,所以写了本例子,用的信号量及互斥体进行操作。 信号量可传递4/8/12字节数据。里面演示了4字节处理。8/12字节需要cha询句柄信息处理就不处理了,...

    哈希表树:哈希表,二叉搜索树,红黑树,epoll,socket,tcp,udp,多进程,共享内存,原子操作,惊群,协议栈

    插入操作1,情况一:插入例程为根例程,将插入副本修改为黑色。 2,情况二:插入中断的父亲例程为黑色,直接插入即可。 3,情况三:插入N振荡器的叔父(U)都为红色;将父亲(P)和叔父(U)修改为黑色祖父修改为...

    linux网络编程

    POSIX消息队列相关函数 POSIX消息队列示例 35POSIX共享内存 POSIX共享内存相关函数 POSIX共享内存示例 Linux网络编程之线程篇 36线程介绍 什么是线程 进程与线程 线程优缺点 线程模型 N:1用户线程模型 1:1核心线程...

    socketio-shared-webworker:WebWorker线程内的Socket.io客户端

    在共享的Webworker中运行Socket.io,可以为多个浏览器窗口和选项卡共享一个Socket.io Websocket连接。 替换了socket.io客户端。 快速安装 npm i --save socketio-shared-webworker 原因 单个websocket连接效率更...

    2018年C++教程网的linux网络编程视频共41集百度云下载链接.rar

    06socket编程(一) 什么是socket IPv4套接口地址结构 网络字节序 字节序转换函数 地址转换函数 套接字类型 07socket编程(二) TCP客户/服务器模型 回射客户/服务器 socket、bind、listen、accept、connect 08...

    PHP 进程池与轮询调度算法实现多任务的示例代码

    phper 请了解进程调度策略,CPU 时间片,进程控制【创建,...撸过 tcp 的话应该知道要能处理多个客户端,就得用 IO 复用技术【事件多路分发器】或是多进程以及多线程,每来一个客户端就 fork 一个进程或是线程,那样的

    C++教程网《Linux网络编程》视频百度云地址

    06socket编程(一) 什么是socket IPv4套接口地址结构 网络字节序 字节序转换函数 地址转换函数 套接字类型 07socket编程(二) TCP客户/服务器模型 回射客户 /服务器 socket、bind、listen、accept、...

    Linux网络编程 视频 教程

    06socket编程(一) 什么是socket IPv4套接口地址结构 网络字节序 字节序转换函数 地址转换函数 套接字类型 07socket编程(二) TCP客户/服务器模型 回射客户 /服务器 socket、bind、listen、accept、...

    C++教程网视频:linux网络编程

    06socket编程(一) 什么是socket IPv4套接口地址结构 网络字节序 字节序转换函数 地址转换函数 套接字类型 07socket编程(二) TCP客户/服务器模型 回射客户/服务器 socket、bind、listen、accept、...

Global site tag (gtag.js) - Google Analytics