【发布时间】:2020-03-27 11:20:24
【问题描述】:
我正在使用 Qt 编写一个 macOS C++ 应用程序,它同时充当 UDP 客户端和 UDP 服务器。服务器功能允许用户配置接收 UDP 数据包的端口,客户端功能允许指定目标主机和端口号。主机可以是主机名或 IP 地址,包括解析为多播或广播地址的地址或主机名。
为了帮助防止循环,当启用服务器功能时,我需要能够在用户为客户端输入的主机和端口将数据包直接发送到应用程序的服务器时警告用户。当然,端口号是否匹配很容易检查,但这意味着我需要知道他们输入的主机是否指的是当前系统。
通常会出现问题的主机名或 IP 地址示例:
127.0.0.1localhost-
192.168.1.255(假设系统位于192.168.1.0/24子网中) - 分配给当前系统网络接口的任何 IP 地址
- 系统的本地 DNS 名称
- 除
127.0.0.1之外可以配置的任何其他环回地址
我怎样才能检测到这个?
由于此应用程序是使用 Qt 编写的,因此专门使用 Qt 框架的解决方案将是理想的。但如果这不可能(因为 Qt 不能处理所有可能的用例),macOS 特定的解决方案也可以工作。
【问题讨论】:
标签: c++ macos qt networking udp