【发布时间】: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#)。