gpt4 book ai didi

c# - Windows Phone 上的网络服务发现

转载 作者:太空狗 更新时间:2023-10-29 19:46:53 25 4
gpt4 key购买 nike

我想写一个简单的桌面应用程序和一个相应的移动应用程序,场景是:

  1. 我在笔记本电脑上运行桌面应用
  2. 我在我的 Lumia 上运行移动应用程序(在同一个 wifi 网络上)
  3. 手机应用程序以某种方式找到并连接到桌面应用程序(我不想手动查找并输入 ip)
  4. 两人现在可以交流了

像这样的非常基本的应用程序可以在两者之间发送简单的文本消息。
我想一个示例应用程序类似于手机上 PC 的“远程控制”,可以在市场上找到 here .
我从查看 UDP 多播开始,并花了一天时间尝试让它工作。这个想法是两个应用程序都加入同一个多播组,电话在加入时向该组发送消息,PC 接收它并用它的 IP 响应,然后电话与桌面应用程序建立 TCP 连接。听起来像是一个有效的解决方案,对吧?好吧,似乎无论我尝试什么,都会发生这种情况:

  1. 场景:在实际手机上运行的移动应用与 PC 应用连接到同一个 WiFi:正在发送消息但从未到达。
  2. 场景:移动应用在与 PC 应用相同的 PC 上的模拟器上运行:消息发送和到达。

这是我尝试使用 sockets-for-pcl 时的代码帖子为此。
这是我尝试使用 .NET 中已有的内容:
PC - 仅发送消息:

UdpClient udp = new UdpClient(port);
IPAddress group_ip = IPAddress.Parse("139.100.100.100");
IPEndPoint client_ipep = new IPEndPoint(group_ip, 3344);
byte[] b = System.Text.Encoding.UTF8.GetBytes(txtEntry.Text);
udp.Send(b, b.Length, client_ipep);

电话 - 仅接收:

HostName hostName = new HostName("139.100.100.100");
DatagramSocket udp = new DatagramSocket();
udp.MessageReceived += (sender, args) =>
{
uint length = args.GetDataReader().ReadUInt32();
string text = args.GetDataReader().ReadString(length);
};
await udp.BindServiceNameAsync("3344");
udp.JoinMulticastGroup(hostName);

然而,一天后我放弃了,因为文档很少,调试需要我获得一些网络扫描工具......

当我在互联网上搜索网络服务发现的一些库时,我发现了一些 Android docs但 Windows Phone 8.1 没有。所以我想我的问题是:Windows Phone 是否有类似的东西?或者,如果您发现我的代码有任何问题,我必须更改什么才能使其通信?谢谢。

最佳答案

不要忘记设置一个有效的端口号并异步接收多播数据

This sample可能对你有帮助

关于c# - Windows Phone 上的网络服务发现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30142208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com