我正在用C#开发一个游戏服务器。该服务器通过套接字与客户端交流,并使用自定义数据包协议发送byte[]。问题是,这个软件会是Windows操作系统专用的,还是能够在Linux服务器上运行。我已经阅读了不同论坛上的不同帖子,有些开发人员说他们的服务器只能在Windows操作系统上运行,而有些人则说它可以在Linux上运行。
是否有任何具体因素?应用程序必须特别编写才能在Linux上运行吗?
我正在用C#开发一个游戏服务器。该服务器通过套接字与客户端交流,并使用自定义数据包协议发送byte[]。问题是,这个软件会是Windows操作系统专用的,还是能够在Linux服务器上运行。我已经阅读了不同论坛上的不同帖子,有些开发人员说他们的服务器只能在Windows操作系统上运行,而有些人则说它可以在Linux上运行。
是否有任何具体因素?应用程序必须特别编写才能在Linux上运行吗?
2020年更新
.NET Core和.NET Framework正在合并成“.NET 5”。从所有方面来看,这只是 .NET Core 的下一个版本(而 .NET Framework 将消失)。
WPF仍然只能在Windows上运行(尽管正在开发基于通用XAML的UI系统),即使它在.NET Core/5上运行,您仍然必须为Linux构建特定的支持项目类型,但跨平台支持比我最初编写此内容时要好得多。
原文
为了使 .NET 代码能够在 Linux 上运行,您需要一个与该平台兼容的 .NET 版本。
完整的 .NET 仅适用于 Windows,但有 Mono 框架可在 Linux 上运行。.NET Core 也正在移植到 Linux。
Mono 和 .NET Core 都不支持标准 .NET 的全部功能。例如,两者都不会让您运行 WPF 应用程序。因此,只要您的代码与前述框架之一兼容,就可以在 Linux 上运行它。
针对你提供的特定示例,你提到的类应该得到支持,我认为在Mono或.NET Core下运行不会有任何问题。