如何使用unix套接字API查找本地可用的UDP端口

如何使用unix套接字API查找本地可用的UDP端口,udp,port,ip,Udp,Port,Ip,我有一个应用程序,其中可能有许多进程必须向一个进程发送消息。我认为最方便的方法就是发送一个UDP数据报 打开套接字时,我需要指定要侦听的端口。因为我只想启动并忘记UDP数据报,所以我只想让操作系统选择一个可用的端口。我宁愿不去寻找一个,尤其是因为我的进程的许多实例可能正在运行。有没有一种方法可以让操作系统选择一个可用的端口(或者更好,甚至不打开监听套接字)来启动并忘记我的UDP数据报 回答“问题”而不是“问题” 如果所有进程都在同一台PC上运行,则可能需要查看共享文件或网络堆栈以外的其他通信方式

我有一个应用程序,其中可能有许多进程必须向一个进程发送消息。我认为最方便的方法就是发送一个UDP数据报

打开套接字时,我需要指定要侦听的端口。因为我只想启动并忘记UDP数据报,所以我只想让操作系统选择一个可用的端口。我宁愿不去寻找一个,尤其是因为我的进程的许多实例可能正在运行。有没有一种方法可以让操作系统选择一个可用的端口(或者更好,甚至不打开监听套接字)来启动并忘记我的UDP数据报

回答“问题”而不是“问题”

如果所有进程都在同一台PC上运行,则可能需要查看共享文件或网络堆栈以外的其他通信方式

我建议您探索Boost的进程间库中的选项

快速指南:


具体来说,我建议您在进程之间使用命名管道或共享内存。

是。指定0作为端口。操作系统将为您选择一个可用端口。

文件是我现在拥有的,但我发现在流量很大时,进程会备份到文件系统。因为它是我每次访问都会启动的可执行文件,所以大型库就不存在了,任何需要大量开销才能设置的库也不存在了。啊,我想它就是这么简单。谢谢注意,您仍然需要一些机制来让其他进程知道它们必须传输到哪个套接字!嗯,我的接收过程有一个静态套接字编号。但是发送进程不希望得到答复。在这种情况下,您的问题令人困惑——听起来好像您在问如何为接收进程选择端口。您的传输进程不需要“侦听”,它们需要“绑定”。发送者也不需要绑定,除非您希望通信量从多主机上的特定接口发送。我不理解这个问题。你能澄清一下这个显示过程S(发送)和过程R(接收)以及你认为他们应该做什么吗?我认为你漏掉了部分协议。