答案 0 :(得分:6)
这取决于你。有些人可能会说C#具有更好的内置功能,因为它更好地包装和封装。对我而言,这是个人选择。当我在.NET中开始一个新项目时,我选择了C#。在较旧的应用程序中,我使用带有Socket Communication的C ++ Builder 5,它的速度和C#版本一样快。在C ++版本中(它被封装为C#),有些事件由于丢失网络连接或套接字上的其他错误而提供错误处理。我的底线是我不会将您的应用程序的语言选择基于套接字。
答案 1 :(得分:5)
C#套接字没有明显的性能损失。
除非您的应用程序始终受CPU限制,否则您将从C#解决方案隐含的安全性中受益,而不是非托管C ++解决方案的任何性能优势。
答案 2 :(得分:3)
我会坚持使用C#层。从错误处理的角度来看,这是一个更安全的环境,如果您的套接字和线程模型设计得恰当(就像您在C ++中所做的那样),我认为您不会看到显着的性能影响。
答案 3 :(得分:1)
使用C#。托管C ++充其量是坏事。无论如何,如果你正在设计一个服务器端应用程序,资源使用将不会(例如)指数。无论您使用什么套接字实现,都可以线性升级。
最后,通过向它投掷硬件,你无法解决这个问题。