- 论坛徽章:
- 0
|
- 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;
- }
- }
复制代码 |
|