gpt4 book ai didi

c - 获取Socket使用的本地端口

转载 作者:行者123 更新时间:2023-11-30 17:13:48 24 4
gpt4 key购买 nike

我需要获取(客户端)套接字使用的本地端口。

据我了解,Windows Sockets 执行隐式绑定(bind)函数调用,因此 sendto() 之后的 getsockname() 应提供分配的港口。但是,它始终将端口号设置为 0。我错过了什么吗?

例如:

if (sendto(sockfd, ...) != SOCKET_ERROR)
printf("Sent\n");

if (getsockname(sockfd, (struct sockaddr*)&sin, &sinlen) != SOCKET_ERROR)
printf("port = %u\n", ntohs(sin.sin_port);
else
printf("Error");

//result: Sent, port = 0

最佳答案

重新启动计算机即可解决问题。仍不清楚实际原因,但目前我很高兴它能正常工作。

如果有人有无需重新启动即可解决问题的想法(对于 future 的读者),请随时发帖。

关于c - 获取Socket使用的本地端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30597111/

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