udp sendto返回值-1 errno却奇葩的是SUCCESS!
setsockopt设置好了。。可是如上的问题。。 代码看看。。。void* send_frame(void* info)
{
int sock_fd;
int on = 1;
struct sockaddr_in udp_info;
struct sockaddr_in local_addr;
if( (sock_fd = socket(AF_INET,SOCK_DGRAM,0))<0)
{
perror("Socket error\n");
pthread_exit(NULL);
}
bzero(&(local_addr),sizeof(struct sockaddr_in));
local_addr.sin_family = AF_INET;
local_addr.sin_port = htons(1989);
local_addr.sin_addr.s_addr = inet_addr("192.168.1.102");
//int ret = bind(sock_fd, (struct sockaddr *) &local_addr, sizeof(local_addr));
//if (ret < 0)
// {
// perror("bind\n");
// pthread_exit(NULL);
//}
bzero(&(udp_info),sizeof(struct sockaddr_in));
udp_info.sin_family = AF_INET;
udp_info.sin_port =htons(((v4l2*)info)->PORT);
udp_info.sin_addr.s_addr =inet_addr("192.168.1.255");
socklen_t len = sizeof(udp_info);
if(-1 == setsockopt(sock_fd,SOL_SOCKET,SO_BROADCAST,&on,sizeof(on)))
{
perror("Setsockopt error!\n");
pthread_exit(NULL);
}
cout << sock_fd << endl;
while(1)
{
if((-1 == sendto(sock_fd, (((v4l2*)info)->send_buf), /*(((v4l2*)info)->user_buf->len)*/1<<10,0,((const struct sockaddr* )&(udp_info)),len)));
{
//cout << ((v4l2*)info)->user_buf->len << endl;
perror("Sendto error!");
if(errno != 0)
{
printf("%d",errno);
pthread_exit(NULL);
}
}
cout << "udp_sender" <<endl;
}
} 回复 2# linux_c_py_php
这我一个 视频采集并发送的线程函数。。刚接触sendto。。
errno是什么值, 贴一下。
页:
[1]