【问题标题】:Simplest way to make a device find each other in the network (find its IP) C#? [duplicate]让设备在网络中找到彼此(找到它的 IP)C# 的最简单方法? [复制]
【发布时间】:2014-01-22 15:40:39
【问题描述】:

我需要一个设备来发送广播并接收等待响应的其他设备的 IP。

我运行了这段代码

System.Net.NetworkInformation.Ping p = new System.Net.NetworkInformation.Ping();
System.Net.NetworkInformation.PingReply rep = p.Send("192.168.1.1");
if (rep.Status == System.Net.NetworkInformation.IPStatus.Success)
{
    //host is active
}

但它很慢,并且会将网络中的任何设备返回给我,而不是我想要的。

我是否应该创建一个 UDP 服务器来等待广播信号,然后将其 IP 发送给发送广播的客户端?

【问题讨论】:

  • 不发送特定的 Ping 消息,只需发送 UDP 自定义“ping”并使用自定义“ping-reply”进行响应。
  • 我几乎在问题“Finding open TCP port in a network”中详细回答了完全相同的问题
  • 我将有两台设备运行同一个应用程序,这个应用程序将有 2 个 btns,一个将“开始接收”,一个将“发送信号”,所以我知道谁在接收。不需要数据传输,我只需要 ping 并获取谁在某个端口(如 3000)上运行。我可以通过上面的示例做到这一点吗?我对这种连接的东西有点陌生,所以帮助:c

标签: c# xamarin broadcast


【解决方案1】:

仅 ping IP 很难确认它是您的设备。

如果您通过 TCP 或 UDP 连接对自定义消息进行额外验证/握手,这将帮助您确认它是您的设备,并让您有机会传递有关在网络上找到的客户端设备的其他配置信息。

【讨论】:

    【解决方案2】:

    如果您使用 Xamarin.iOS,最好的解决方案是使用 Apple Bonjour,如果您使用 Xamarin.Android,您可以使用 bonjour.net 或 Android Network Service Discovery

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-03
      • 2011-07-18
      • 1970-01-01
      • 2011-09-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多