Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
(UDP)GVCP广播不起作用_Udp_Winsock - Fatal编程技术网

(UDP)GVCP广播不起作用

(UDP)GVCP广播不起作用,udp,winsock,Udp,Winsock,环境:使用VC++2010进行Windows Socket编程 GVCP:GigE视觉控制协议 GVCP=UDP+(GVCP头数据+有效负载数据)。所以基本上,它只是一个UDP 为了检测GigE传感器(摄像头),需要首先使用广播地址255.255.255.255广播GVCP数据包(包含GVCP有效载荷数据) 但当我更改广播地址255.255.255.255.255时,我只能通过192.168.1.255(如wire shark上所示)进行广播。wire shark上和其他机器上都看不到任何内容

环境:使用VC++2010进行Windows Socket编程

GVCP:GigE视觉控制协议

GVCP=UDP+(GVCP头数据+有效负载数据)。所以基本上,它只是一个UDP

为了检测GigE传感器(摄像头),需要首先使用广播地址255.255.255.255广播GVCP数据包(包含GVCP有效载荷数据)

但当我更改广播地址255.255.255.255.255时,我只能通过192.168.1.255(如wire shark上所示)进行广播。wire shark上和其他机器上都看不到任何内容


所以问题是无法使用IP 255.255.255.255使用UDP/WinSock进行广播

无法开始广播GVCP数据包它只是一个套接字创建错误下面是正确的

//---------------------DATA SENDER------------------------------
        struct sockaddr_in Sender_addr;
        int     Sender_addrlen      =   sizeof(Sender_addr);    
        Sender_addr.sin_family      = AF_INET;
        Sender_addr.sin_port        = htons(CAMPORT);               //BROADCAST_PORT);
        Sender_addr.sin_addr.s_addr = inet_addr("255.255.255.255"); //Broadcast 
    IP Here");



//---------------------DATA RECEIVER----------------------------
        struct sockaddr_in Recv_addr;
        int     Recv_addrlen        =   sizeof(Recv_addr);
        Recv_addr.sin_family        = AF_INET;
        Recv_addr.sin_port          = htons(PCPORT);
        Recv_addr.sin_addr.s_addr   = INADDR_ANY;

        if(bind(sock,(sockaddr*)&Recv_addr,sizeof(Recv_addr))<0)    
        {
            perror("bind");
            _getch;
            closesocket(sock);
        }

//and then send command for GVCP packet (GVCP packet Structure is )

        TxBuff[0]   =   0x42;   
        TxBuff[1]   =   0x01;       
        TxBuff[2]   =   0x00;   
        TxBuff[3]   =   0x02;
        TxBuff[4]   =   0x00;   
        TxBuff[5]   =   0x00;
        TxBuff[6]   =   0x00;   
        TxBuff[7]   =   0x02;

    if(sendto(sock,TxBuff,TxBuffSize,0,(struct sockaddr 
    *)&Sender_addr,sizeof(Sender_addr)) <0)
                {
                perror("send: error ");
                _getch();
                closesocket(sock);            
            }
/--------------数据发送方------------------------------
发送方地址中的结构sockaddr\u;
int Sender\u addrlen=sizeof(Sender\u addr);
发送方地址sin家庭=AF网络;
发送方地址sin港口=htons(营地)//广播(港),;
发送方地址sin地址s地址=inet地址(“255.255.255.255”)//广播
知识产权(此处为“);
//---------------------数据接收器----------------------------
Recv_addr中的结构sockaddr_;
int Recv_addrlen=sizeof(Recv_addr);
Recv_addr.sin_family=AF_INET;
Recv_addr.sin_port=htons(PCPORT);
Recv_addr.sin_addr.s_addr=INADDR\u ANY;
if(绑定(sock,(sockaddr*)和Recv_addr,sizeof(Recv_addr))