【问题标题】:Get two devices to communicate over WiFi without going through IP (p2p over the WiFi layers only)让两台设备无需通过 IP 即可通过 WiFi 进行通信(仅限 WiFi 层上的 p2p)
【发布时间】:2017-03-31 16:58:56
【问题描述】:

我需要让两台机器在不使用 IP 的情况下通过 WiFi 进行通信(我不想使用 IP 套接字)。该解决方案最好适用于两种 WiFi 模式(基础设施,如常规 WiFi 和 ad-hoc,如 WiFi Direct)。请提供 C# 示例代码。

我搜索了很多,找不到任何类似于在两台机器(p2p)之间发送和接收数据但只使用没有任何 IP 的 WiFi 的套接字程序的代码。

【问题讨论】:

  • 您是否有特殊原因要避免使用 IP?要绕过 IP,您基本上必须与 WiFi 设备驱动程序对话,操作系统可能不允许您这样做,并且可能会针对不同的设备进行更改。对我来说,UDP(使用 IP)似乎可以用更少的努力完成几乎相同的结果。
  • 这个问题有几个问题: 套接字是操作系统在TCP之上提供的一种抽象,它使用IP可靠地传递数据。 Wi-Fi Direct 不在 802.11 'ad-hoc' 模式下运行,它使用隐藏的基础设施网络。
  • 首先感谢您的cmets。但是我的问题没有得到回答,也许不是很清楚:有没有办法让两台机器通过 WiFi 进行通信,而不使用 OSI 模型中第 2 层之外的任何层?如果是这样,是否有 C# 代码示例?我希望 .NET 中有一个类似于串行通信 API 的 API,其中机器可以通过 WiFi 侦听、接收和发送数据,而无需 TCP/IP。通信将使用 WiFi mac 地址而不是 IP 地址来定位机器。
  • @samman 您想要做的事情当然是可能的,但它需要使用非常低级别的工具(c、驱动程序 API 等),这与您希望在非常高级的语言 (C#)。

标签: c# wifi p2p


【解决方案1】:

Apple 的 Multi-Peer Connectivity 框架支持设置对等连接,开发人员无需直接管理 IP 连接,但它使用 IP 传送数据并且仅限于 Apple 设备。

如果您愿意编写低级 c 代码来执行此操作,则可以执行此操作,但任何避免 IP 的解决方案都必须重新创建协议的重要部分才能有用,并且几乎肯定需要更多的工作而不仅仅是使用操作系统的 IP 功能。

对于 Wi-Fi 站之间非常简单的通信形式,您可以使用自定义动作框架和信息元素,但这些需要对驱动程序进行非常低级别的访问。

【讨论】:

猜你喜欢
  • 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
相关资源
最近更新 更多