在 Mac 上可以使用 Mono 与 winsock2.h 一起构建吗?

On a Mac can Mono be used to build with winsock2.h?

想使用一些 Microsoft 特定工具进行练习;具体来说 winsock2.h。我知道 Mono 可以用来制作 C# 程序,但在安装之前我希望了解它是否能做更多的事情。

winsock2.h这样的API,你说的是直接win32 API和相关的库。

Mono/C# 通过语言 运行-time 提供更高级别的网络 APIs,从而无需使用这些低级别的、特定于平台的APIs.

因此,您无法通过 Mono 在 Mac 上使用 C# 来使用 winsock2.h APIS。底层库和代码根本不会出现在该平台上。您确实需要使用 windows 系统来处理它们,在这种情况下,使用 C/C++ 会更容易。

在 mac 上处理 win32 APIs 的一些潜在方法是:

  • 使用 VM 进行虚拟化 - 例如virtualbox、vmware、parallels
  • 使用训练营进行双引导 (您可以在 运行ning OSX 的同时启动您的 bootcamp 分区,但这与虚拟化几乎相同,您只需保存在磁盘上 space)

可以 尝试使用 wine 来模拟 windows APIs,但我什至没有考虑过它,因为努力可能会超过好处,你最终还是会写 C/C++ 代码。