我需要创建一个程序,通过 UDP 套接字与同一台计算机上的其他程序进行通信。它将从 stdin
读取命令,其中一些命令将使其在不停止执行的情况下发送/接收数据包。我已经阅读了一些信息,但由于我不熟悉套接字编程并且需要快速完成此操作,所以我有以下问题:
- 我需要为程序获取一个随机未使用的端口来监听,并保留它以便其他程序可以与之通信,并且该端口不被另一个程序保留。我还需要将端口号存储在变量中以备将来使用。
- 由于通信是在同一台机器上跨进程进行的,我想知道我是否可以使用 PF_LOCAL。
也欢迎提供此类套接字设置的代码示例,以及发送/接收字符串的示例。
最佳答案
调用 bind()
指定端口 0。这将允许操作系统选择一个未使用的端口。然后,您可以使用 getsockname()
检索所选端口。
关于c - 获取 UDP 套接字的随机端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22890514/