2011-12-20 4 views
0

네트워크에있는 장치를 검색 할 수 없습니다. 두 가지 응용 프로그램이 있습니다. 하나는 C++로 작성되었고 다른 하나는 windows phone 7 app입니다. Wp7에서 내가 추천 한 UDP 브로드 캐스트를 보내고 있습니다. How to broadcast a UDP packet on WP7 Mango? wp7에서 메시지를 브로드 캐스트하고 C++ 앱에서 수신 할 수 있습니다. 그러나 C++ 코드에서 UDP 패킷을받을 수 없습니다. 내 코드는 다음과 같습니다. C# 코드Windows 장치 검색 7

private void PageTitle_Tap(object sender, GestureEventArgs e) 
     { 
      var ipAddress = IPAddress.Parse("255.255.255.255"); 
      var endpoint = new IPEndPoint(ipAddress, 4998); 
      byte[] data = Encoding.UTF8.GetBytes("hello|4998"); 
      var args = new SocketAsyncEventArgs(); 
      args.RemoteEndPoint = endpoint; 
      args.SetBuffer(data, 0, data.Length); 
      args.Completed += new EventHandler<SocketAsyncEventArgs>(args_Completed); 
      socket = new Socket(AddressFamily.InterNetwork, 
       SocketType.Dgram, 
       ProtocolType.Udp); 
      bool result = socket.ConnectAsync(args); 

     } 

     void args_Completed(object sender, SocketAsyncEventArgs e) 
     { 
      if (e.SocketError != SocketError.Success) 
      { 
       return; 
      } 

      switch (e.LastOperation) 
      { 
       case SocketAsyncOperation.Connect: 
        bool res = e.ConnectSocket.ReceiveFromAsync(e); 
        break; 

       case SocketAsyncOperation.Send: 
        break; 

       case SocketAsyncOperation.Receive: 
        break; 
      } 
     } 

C++ 코드 나 또한 message.But를받을 IPADDRESS.Any를 사용하여 다른 소켓을 만들어 사용했다

ServerAddress.sin_family= AF_INET; 
ServerAddress.sin_addr.s_addr= INADDR_ANY; 
ServerAddress.sin_port = htons (PORT_DESKTOP); 
ServerSocket = socket (PF_INET, SOCK_DGRAM, 0); 

sendto (ServerSocket, Buffer, sizeof (Buffer), 0, (LPSOCKADDR) &ClientAddress, Length); 

나는 C++ 코드에서 응답을 수신 할 수 없습니다입니다.

미리 감사드립니다.

답변

0

활성화 하시겠습니까? SO_BROADCAST?

SOL_SOCKET Socket Options

:

SO_BROADCAST 것은 예 예 DWORD (부울) 브로드 캐스트 데이터를 전송하기위한 소켓을 구성합니다. 이 옵션은 브로드 캐스트 (예 : IPX 및 UDP)를 지원하는 프로토콜에만 유효합니다.