gpt4 book ai didi

ios - 为什么 iOS 会阻止绑定(bind)到 UDP 端口 6785 (IN_ADDRANY)?

转载 作者:可可西里 更新时间:2023-11-01 05:00:19 30 4
gpt4 key购买 nike

我正在开发一个应用程序,该应用程序使用 UDP 端口 6785 来发现网络连接的数据记录器。我的应用程序尝试按如下方式调用 bind():

  int socket_handle;
int error = 0;

socket_handle = socket(AF_INET, SOCK_DGRAM, 0);
if(socket_handle < 0)
error = errno;
if(error == 0)
{
struct sockaddr_in addr;
memset(&addr, 0, sizeof(addr));
addr.sin_len = sizeof(addr);
addr.sin_family = AF_INET;
addr.sin_port = htons(6785);
addr.sin_addr.s_addr = htonl(INADDR_ANY);
error = bind(socket_handle, (struct sockaddr const *)&addr, sizeof(addr));
}

从 bind() 返回的错误是错误 49(无法分配请求的地址)。发生这种情况是因为与某些内部设备服务发生冲突,还是由于某种未知原因被操作系统阻止?

事实证明,如果我关闭了 VPN,则不会出现故障。我必须启用 VPN 才能从 wifi 访问我们的本地网络。

最佳答案

在调用 bind() 之前尝试这个。这解决了端口被 TIME_WAIT 阻塞的问题

int optval = 1;
setsockopt(socket_handle, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval));

关于ios - 为什么 iOS 会阻止绑定(bind)到 UDP 端口 6785 (IN_ADDRANY)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8944459/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com