通信协议之广播---recvfrom 放回客户端的ip地址第一次全为0.0.0.0

遇到一个很恶心的问题。

while(1)

{

    recvfrom(sockfd, readbuff, UDP_CMD_BUFF_LENGTH - 1, 0, (struct sockaddr *)&Glob_remot_88_port_add, &len);

    PRINT("[recevudp]len %d IP is %s ", len, inet_ntoa(Glob_remot_88_port_add.sin_addr));

}

这个函数, 第一次接受打印出的发送方IP地址总是0.0.0.0;

困扰了很久。直到今天!终于解决了。

在recvfrom之前加一句: len = sizeof(struct sockaddr);

就OK了!!!

http://blog.163.com/ztlchina@126/blog/static/82597716201072464553283/

http://bbs.csdn.net/topics/360141164

原文地址:https://www.cnblogs.com/pengkunfan/p/4251278.html