`
java2000.net
  • 浏览: 654995 次
  • 性别: 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+多进程

相关推荐

    socket 多进程实例

    标题中的"socket多进程实例"意味着我们将使用Socket接口来创建并管理多个独立的进程,每个进程可以同时处理一个或多个客户端连接。多进程模型允许服务端充分利用多核处理器的计算能力,提高系统并行处理能力,但同时...

    socket进程间通信的一个一对多例子

    通过这个"socket进程间通信的一个一对多例子",我们可以学习如何设计和实现一个可以处理多个并发连接的服务器,以及如何让客户端与之通信。这对于理解网络编程和进程间通信的基本原理非常有帮助,也是开发分布式系统...

    Windows下的多进程间通信及数据共享

    内存共享是指多个进程之间共享同一块内存区域,以实现数据交换的目的。在Windows中,内存共享是通过FileMapping对象实现的。FileMapping对象是Windows操作系统中一种特殊的内核对象,它可以将一个文件映射到进程的...

    Linux上实现基于Socket_的多进程实时通信

    在Linux系统中,实现基于Socket的多进程实时通信是一...这种通信模型适用于需要多个进程协作的系统,如分布式计算、实时数据共享等应用场景。然而,实际应用中还需要考虑错误处理、资源管理、安全性和性能优化等问题。

    进程共享数据示例

    它允许多个进程映射同一块内存区域到各自的地址空间,从而实现数据共享。在Unix/Linux系统中,可以使用`mmap`函数创建共享内存,而在Windows系统中,可以使用`CreateFileMapping`和`MapViewOfFile`函数。 2. **信号...

    利用UDP协议与socket文件完成两个进程之间的网络通信

    服务端与客户端通过UDP套接字进行网络交互,而socket文件则提供了在同一台机器上不同进程间共享信息的手段。在实际应用中,这种组合方式对于需要高效、实时通信且涉及多进程协作的系统非常有用。然而,由于UDP的特性...

    IPC之使用Socket进程间通信

    3. **跨进程通信**:使用Socket进行跨进程通信时,每个进程都可以作为一个独立的服务器或客户端,它们可以通过建立Socket连接来交换数据。这在多进程应用中特别有用,例如在一个进程中处理用户输入,另一个进程处理...

    Linux进程间通信方式之socket使用实例

    套接字是一种用于进程间通信的接口,它允许两个进程之间通过网络或者同一台机器上的进程间进行数据交换。在Linux环境下,套接字提供了灵活且高效的通信机制,支持多种不同的通信协议和数据传输模式。 ##### 1. 套接...

    Linux下Socket 多进程多客户端通信

    其次,由于多个进程可能会同时访问和修改同一份数据(例如,接收来自不同客户端的数据),因此需要采用适当的同步机制来避免数据竞争。在Linux中,我们可以使用互斥锁(mutex)、信号量(semaphore)或者条件变量...

    C语言编写Socket编写进程间传文件

    在提供的`SocketDemo1`文件中,应该包含了一个或者多个示例代码,这些代码演示了如何在C语言中使用Socket进行进程间文件传输的具体实现。通过学习和理解这些代码,你可以更深入地了解Socket编程,并掌握如何在实际...

    socket高并发多线程多进程代码

    在IT领域,Socket编程是构建网络通信应用的基础,它允许两个或多个进程通过网络进行通信。在处理高并发场景时,多线程和多进程技术是必不可少的手段,以充分利用多核处理器的能力,提高系统效率。下面将详细介绍这些...

    Socket 通讯,xml解析,进程pattern

    进程模式是指如何管理和协调多个进程以完成特定任务。常见的进程模式有单进程、多进程和多线程。单进程模式简单但资源利用率低;多进程模式可以充分利用多核处理器,但进程间通信复杂;多线程则在同一进程中创建多个...

    java实现守护进程,有单独的监听进程, 两个或多个进程,两个或多个jvm

    在Java编程环境中,实现守护进程(Daemon)以及创建多个进程和JVM是非常常见的需求,特别是在构建分布式系统或者需要持续后台运行的服务时。本篇将详细阐述如何使用Java来实现这些功能。 守护进程通常是一个在后台...

    QT 多进程通信

    QSharedMemory可以在多个进程间创建和访问同一块内存区域,使得数据能够在不同进程中实时同步。然而,由于共享内存涉及到并发访问,因此需要特别注意同步问题,以防止数据竞争和不一致的情况。 在这个例子中,我们...

    windows内存共享进程间通信

    内存共享是指两个或多个进程可以访问同一片内存空间,这种通信方式高效且直接,因为数据无需通过系统调用或复制到额外的缓冲区,减少了不必要的数据拷贝和上下文切换。 2. **Windows内存共享实现** 在Windows中,...

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

    Ashmem是一种内核支持的内存分配机制,允许多个进程访问同一块内存区域,从而提高数据交换效率。 首先,我们要理解Ashmem的基本概念。Ashmem是Android系统特有的内存管理机制,它创建的内存区域是匿名的,即不在...

    linux socket、驱动、进程编程

    1. `socket()`:创建一个Socket描述符。 2. `bind()`:绑定Socket到特定的IP地址和端口。 3. `listen()`:使Socket进入监听状态,等待客户端连接。 4. `accept()`:接受来自客户端的连接请求,并返回新的Socket描述...

    linux进程编程介绍

    但这也需要同步机制,如信号量(semaphore)或互斥锁(mutex),防止多个进程同时访问同一资源造成的数据不一致问题。 信号(signal)在Linux进程间通信中也扮演着重要角色。它们是一种异步事件通知机制,允许一个...

    delphi多线程socket编程介绍

    线程则是进程内部的一个执行单元,每个进程至少包含一个主线程,用户可以根据需要在应用程序中创建额外的线程。 - **线程之间的通信**:在同一进程中创建的线程共享进程的虚拟地址空间,因此线程间的通信相对简单...

    多线程socket文件传输

    3. **文件分块**:大文件可能需要分割成多个小块,每个线程负责传输一块,这样可以同时发送多个数据块,提高传输速率。 4. **数据传输**:每个线程使用send()函数发送数据,同时服务器端使用recv()函数接收数据。...

Global site tag (gtag.js) - Google Analytics