![]() |
1
1
这样做的一个主要问题是.NET内部使用的Windows套接字API只允许一个应用程序同时绑定到给定的端点(IP地址和端口)。 为了在一台机器上支持应用程序的多个实例,您需要克服这个限制。有很多可能的方法可以做到这一点,包括
在上图中,实例A首先启动,并保存侦听端点的套接字。当实例B启动时,它将检查另一个实例[1*],当发现它不是唯一的实例时,它将建立到实例A的IPC连接[2*]
[1*]检查第二个实例的一种方法是使用命名互斥体。启动时,应用程序应尝试获取互斥锁,如果成功,则它是唯一实例,应绑定到侦听终结点;如果获取互斥锁失败,则应用程序的另一个实例正在运行;第二个实例应尝试获取IPC通道,实例绑定到侦听终结点。 [2*]获取IPC通道的方式取决于所使用的通信机制,例如,如果您使用的是命名管道,则第一个实例将使用您应用程序的所有实例都知道的名称创建管道,随后的实例将打开连接到该管道的管道。 这决不是一个完整的答案,但我希望它能有所帮助 |
![]() |
2
0
尝试虚拟化。也就是说,使用VMWare或VirtualBox(例如),您可以在单个系统上运行各种“机器”。只需创建三到四个虚拟机,然后。。。你有机会运行各种实例,就好像它是真实的一样。
|
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
![]() |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
|
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
![]() |
i_sniff_ket · 在unity之外使用unity类 2 年前 |