2017-05-31 12 views
0

環境に機能していない:のGigEビジョン制御プロトコル(UDP)GVCP放送が

GVCP = UDP +(GVCPヘッダーデータ+ペイロードデータ):VC++ 2010

GVCPを使用してWindowsソケットプログラミングを。そう基本的に上にそのUDPは

検出のGigEセンサー(カメラ)の最初のブロードキャストアドレス255.255.255.255に

を使用して、(GVCPペイロードデータを含む)GVCPパケットをブロードキャストする必要がありますが、私はのみ放送することができていますブロードキャストアドレス255.255.255.255を変更すると192.168.1.255(192.168.1.255)までになります。他のマシンには何も表示されません。

UDPを使用してIP 255.255.255.255を使用してブロードキャストすることはできません/ WinSock

答えて

0

ブロードキャストを開始できます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);    
      }