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

原创 2008年09月29日 06:45:00
论坛出现如下一个帖子,要在多个进程里面共享Socket, 而不是线程里面。

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

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


个人观点:

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

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

同一进程中同一端口如何区分不同的Socket

为了区分不同应用进程间的网络通信和连接,主要有3个参数:通信的目的IP地址、使用的传输层协议(TCP 或 UDP)和使用的端口号。     Socket的原意是“插座”。通过将这3个参数结合起来...
  • striver1205
  • striver1205
  • 2014年08月29日 17:58
  • 6322

socket实现多个客户端连接在一个服务器上

1、使用socekt通信一般步骤     1)服务器端:socker()建立套接字,绑定(bind)并监听(listen),用accept()等待客户端连接。     2)客户端:socker()...
  • dazhong159
  • dazhong159
  • 2012年08月30日 15:06
  • 37243

linux网络编程:使用多进程实现socket同时收发数据

前面已讲过使用一个进程实现服务端和客户端P2P通信的实例,但是它只能同时处理一个客户端的连接。如果要实现并发处理多个客户端的连接并且实现P2P通信,可以使用多进程来处理。相比与多线程来说,多进程耗费的...
  • li_wen01
  • li_wen01
  • 2016年09月27日 23:58
  • 2074

多进程服务端实现-共享socket

众所周知,使用多进程的服务端模型有利于程序的健壮性。传统的做法是主进程负责收发数据,然后传给子进程来处理。这种做法的缺陷是需要大量的父子进程IPC,对效率来说是一种损失。 这里,我提出另外一种比较独特...
  • nokianasty
  • nokianasty
  • 2013年08月19日 16:09
  • 4096

socket、端口、进程的关系

socket、端口、进程的关系!端口是TCP/IP协议中的概念,描述的是TCP协议上的对应的应用,可以理解为基于TCP的系统服务,或者说系统进程!如下图,FTP就需要占用特定的TCP端口。而 sock...
  • antony1776
  • antony1776
  • 2017年06月25日 15:12
  • 2280

tcp通信:多进程共享listen socket方式

看tornado源码多进程(process.py)那段,发现他的多进程模型和一般常见的模型有点不一样,多见的是主进程bind-> listen -> accept, 将accept返回的socket用...
  • largetalk
  • largetalk
  • 2012年09月03日 17:59
  • 5864

两个进程,或者多个进程同时监听一个端口,邦定同一个端口,

void ReceiveTest() { //1 创建套节字 System.Net.Sockets.Socket s = n...
  • daonidedie
  • daonidedie
  • 2012年12月10日 15:03
  • 5830

MFC edit控件实现自动换行

必须设置Vertical Scrollbar = TRUE 必须设置MultiLine = TRUE 必须设置Horizontal Scrollbar = FALSE 必须设置Auto HScr...
  • a200638012
  • a200638012
  • 2016年07月08日 17:22
  • 4803

设置MFC Edit control可以换行显示

MFC Edit control可以换行显示 1.设置edit control 属性Multiline为true 2.写入数据时,想换行的时候写入"\r\n"即可,CString str.Re...
  • a780902723
  • a780902723
  • 2014年12月09日 16:52
  • 2475

MFC中EDIT控件实现换行

一、通过回车换行: 这里要有两个设置 .将控件的属性设置为Mutilines->true; .将控件的另一个属性设置为Want return->true. 水平和垂直滚动条设置...
  • dearwind153
  • dearwind153
  • 2015年12月09日 21:13
  • 3896
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:多个进程共享同一个socket的个人观点
举报原因:
原因补充:

(最多只允许输入30个字)