recvmsg函数使用的问题
写了一个程序,用recvmsg函数接收数据,但是执行到该函数处,不进入阻塞,不等待信息到来就退出了。各位帮忙看看这是怎么回事。
#include <netinet/in.h>
#include <stddef.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/param.h>
int main()
{
int sock,i;
struct sockaddr_in address,source;
struct msghdr msg;
struct cmsghdr cmsg;
sock=socket(AF_INET,SOCK_DGRAM,0);
address.sin_family=AF_INET;
address.sin_port=htons(5678);
address.sin_addr.s_addr=inet_addr( "0.0.0.0 ");
bind(sock,(struct sockaddr *)&address,sizeof(address));
puts( "server started! ");
msg.msg_name=&source;
msg.msg_control=&cmsg;
memset(buff,500,0);
recvmsg(sock,&msg,0);
close(sock);
}
[解决办法]
一定是recvmsg(sock,&msg,0);出错了
[解决办法]
应该给msghdr的每个字段赋值。
recvmsg函数使用的有关问题
recvmsg函数使用的问题 写了一个程序,用recvmsg函数接收数据,但是执行到该函数处,不进入阻塞,不等待信息到
