我有一个应用程序,其中可能有许多进程必须向一个进程发送消息。我认为最方便的方法是发送一个 UDP 数据报。
打开套接字时,我需要指定要监听的端口。因为我只想触发并忘记 UDP 数据报,所以我想让操作系统选择一个可用端口。我宁愿不必寻找一个,特别是因为我的进程的许多实例可能正在运行。有没有办法告诉操作系统只选择一个可用端口(或者更好的是,甚至不打开侦听套接字)来触发并忘记我的 UDP 数据报?
是的。指定 0 作为端口。操作系统将为您选择一个可用的端口。
回答“问题”而不是“问题”
如果所有进程都在同一台 PC 上运行,您可能需要查看共享文件或网络堆栈以外的其他一些通信方式。
我建议您探索 Boost 的进程间库 http://www.boost.org/doc/libs/1_37_0/doc/html/interprocess.html中的选项
此处的快速指南:http: //www.boost.org/doc/libs/1_37_0/doc/html/interprocess/quick_guide.html
具体来说,我建议您在进程之间使用命名管道或共享内存。