繁体   English   中英

在同一程序的两个实例之间发送数据

[英]Send data between two instances of the same program

我即将完成程序的Mutex和Single Instance的对抗。

我已经工作到可以检查我的程序是否正在运行另一个实例的程度。

但是,这就是我现在想要找出的:

如果我有另一个实例在运行,我想将数据从新实例发送到旧实例。

这是我的音乐播放器的情况:

用户单击一个mp3文件,它将在新实例中打开。

新实例发现已经有一个实例打开,并将文件路径发送到第一个实例。

您如何处理这些事情? 任何阅读它的地方都很棒。

我一直在完全相同的问题atm上工作。 在本文中,您可以了解所有可用的进程间通信机制。

我选择在项目中使用TCP套接字。 在这里,您可以找到服务器客户端应用程序示例。

近似算法为:

  1. 检查是否正在运行同名进程
  2. 如果不是,请创建服务器套接字并使用BeginAccept方法开始侦听客户端连接
  3. 如果同一实例已经在运行,请创建客户端套接字,发送数据并关闭实例
  4. 当服务器端获取数据时,它将处理数据并继续监听
  5. 当用户关闭程序时,您必须结束监听

请注意,必须在退出前处置套接字。 另外,您应该在后台线程中侦听并使用同步机制(例如EventWaitHandle)等待,直到从客户端接收数据,然后再转到下一个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM