在Linux的socket udp编程中,常常发现sendto函数第一次执行出错,而后面的执行正常,且第一次错误返回-1 perror显示错误为Address family not supported by protocol。
这主要是因为在前面recvfrom函数中,最后一个参数的问题。长度__addr_len是一个in_out类型参数,不要未初始化直接传入,传入时需要赋值为sizeof(struct sockaddr)。问题解决!
本文介绍了解决Linux UDP编程中sendto函数首次调用失败的问题,主要原因是recvfrom函数中的地址长度参数未正确初始化。通过设置该参数为sizeof(struct sockaddr),可以避免出现“Address family not supported by protocol”的错误。
在Linux的socket udp编程中,常常发现sendto函数第一次执行出错,而后面的执行正常,且第一次错误返回-1 perror显示错误为Address family not supported by protocol。
这主要是因为在前面recvfrom函数中,最后一个参数的问题。长度__addr_len是一个in_out类型参数,不要未初始化直接传入,传入时需要赋值为sizeof(struct sockaddr)。问题解决!
2352
464
3864
1284
1648
2814
5559

被折叠的 条评论
为什么被折叠?
