【问题标题】:Device Discovery in Windows phone 7Windows phone 7 中的设备发现
【发布时间】:2011-12-20 23:10:50
【问题描述】:

我无法检测到网络中存在的设备。 我正在使用两个应用程序。一个是用 C++ 编写的,另一个是 windows phone 7 应用程序。从 Wp7 我发送从 How to broadcast a UDP packet on WP7 Mango? 引用的 UDP 广播我能够从 wp7 广播消息并在 C++ 应用程序中接收。但我无法从 C++ 代码接收 UDP 数据包。 这是我的代码。 C#代码

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++ 代码

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

我还使用 IPADDRESS.Any 创建另一个套接字来接收消息。但我无法接收来自 c++ 代码的响应。

提前致谢。

【问题讨论】:

    标签: c# c++ windows-phone-7


    【解决方案1】:

    您是否错过启用SO_BROADCAST

    SOL_SOCKET Socket Options:

    SO_BROADCAST yes yes DWORD (boolean) 配置用于发送的套接字 广播数据。此选项仅对支持的协议有效 广播(例如 IPX 和 UDP)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多