关于网络通信中recvfrom和sendto的用法
我在服务器里广播一条系统信息(buf3),然后接受客户端发来的信息(buf4),再转发给所有的客户;在客户端里接受服务器发来的信息并显示,发送信息给客户端。用UDP来实现。
服务器里:
sendto(sockfd,buf3,sizeof(buf3),0,NULL,NULL);
printf("recv111111111\n");
recvfrom(sockfd,buf4,MAXLINE,0,NULL,NULL);
// printf("recv333333\n");
sendto(sockfd,buf4,sizeof(buf4),0,NULL,NULL);
客户端里:
recvfrom(sockfd,buf2,MAXLINE,0,NULL,NULL);
printf("recv from server:%s\n",buf2);
sendto(sockfd,buf,sizeof(buf),0,(SA *)&servaddr,sizeof(servaddr));
问题:
recvfrom函数后两个参数应该为&peeraddr和&peerlen,用以保存接受到的数据的来源地址和地址大小,如果在客户端,设置为NULL,意为不保存服务器的地址,但是在服务器端也设置为NULL也可以吗?“ printf("recv111111111\n");”这句输出,但是那句注释掉的 “printf("recv333333\n");”没有输出,循环也卡在这里。
求教~