套接字建议

时间:2009-06-10 17:52:49

标签: c# .net sockets

我在开发一个将作为Windows服务运行的简单套接字服务器方面做了一些研究。我将用C#写这个,但我已经意识到.Net套接字是slllooooowwwww。对于使用.Net网络课程的初始推出会很好,但我想知道是否有人有高性能(并且希望是免费的)套接字库的经验。我想的可能是用c ++编写的东西,我可以在.net中用作com对象。

我之前使用过indy套接字,但看起来不再有项目正在进行中。我已经做了一些谷歌搜索,我找到了一些库,但我希望得到实际使用套接字库的人的反馈,并取得了很好的成功。

任何帮助表示赞赏。感谢。

2 个答案:

答案 0 :(得分:2)

听起来你需要在优化之前进行优化。我会继续使用.NET构建它,看看在尝试执行可能更慢的操作之前是否存在性能问题。 COM有很多开销。

答案 1 :(得分:2)

我会重温你最初的假设 - 我不相信它是准确的。

根据我的经验,使用.NET框架套接字库的开销并不高 - 它们表现得非常好。我看到,套接字代码非常慢的主要原因是人们试图直接将非C#代码移植到C#中,特别是尝试移植同步C ++套接字代码。 .NET的BCL中的套接字都设计为异步使用。如果你试图强迫它们进入同步模型,你最终会添加相当多的阻塞,这肯定会导致代码非常慢。

尝试按照设计方式使用套接字类 - 我认为您对性能以及可用性非常满意。