Crazy_bun 发表于 2013-02-20 14:44

udp sendto返回值-1 errno却奇葩的是SUCCESS!

setsockopt设置好了。。可是如上的问题。。

linux_c_py_php 发表于 2013-02-20 18:09

代码看看。。。

Crazy_bun 发表于 2013-02-22 14:47


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;
                }
}

Crazy_bun 发表于 2013-02-22 14:49

回复 2# linux_c_py_php


这我一个 视频采集并发送的线程函数。。刚接触sendto。。
   

linux_c_py_php 发表于 2013-02-22 14:55

errno是什么值, 贴一下。
页: [1]
查看完整版本: udp sendto返回值-1 errno却奇葩的是SUCCESS!