Socket 服务器应用程序的选择:C/C++ 或 C#

Posted

技术标签:

【中文标题】Socket 服务器应用程序的选择:C/C++ 或 C#【英文标题】:Choice for Socket Server Application: C/C++ or C# 【发布时间】:2010-03-22 20:01:52 【问题描述】:

假设您可以在 C/C++ 或 Csharp 之间进行选择,并且您打算在 Windows 和 Linux 服务器上运行同一服务器的多个实例,那么构建套接字服务器应用程序最明智的选择是什么?

【问题讨论】:

我想说这在很大程度上取决于服务器应该做什么,所以请告诉。 【参考方案1】:

如果您可以让服务在 Windows 和 Linux 中的 .NET 上运行(通过 Mono),C# 可能是在开发方面“更容易”使用的环境。

C++ 路线可能有点棘手 - 您必须为 Linux 和 Windows 编译代码,如果您在 C++ 中执行低级/平台相关的事情,这可能会变得很棘手。

如果代码写得好,C++ 路线的性能也可能会好一些。如果您有高负载或性能要求,C++(或纯 C)可能是更好的途径。

【讨论】:

【参考方案2】:

在 Linux 上?

C/C++

基于 C/C++ 的套接字的东西很容易获得,工具包、框架和高性能示例也是如此。看看提供数以万计基于套接字的线程的 FreeBSD 系统。 C/C++ 可以用很少的代码做所有你想做的事情。

但是,如果您的业务逻辑都是用 C# 编写的,那么用 C# 编写您的套接字可能会更简单、更容易(不过,如果您这样做,您应该考虑使用 WCF)。

【讨论】:

【参考方案3】:

对于 c++,我会在 http://www.boost.org/ 中寻找一个库

【讨论】:

以上是关于Socket 服务器应用程序的选择:C/C++ 或 C#的主要内容,如果未能解决你的问题,请参考以下文章

C语言 UDP socket 简单客户端 编程,急

C/C++ socket编程教程:1天玩转socket通信技术

C/C++ Linux Socket网络编程

c/c++ socket函数详解

Linux深入理解Socket异常

从 linux 源码看 socket 的阻塞和非阻塞