我知道在Java中,当你想创建一个高性能的服务器时,你使用nio而不是常规套接字。 对于C#来说,创建高性能服务器有没有这样的事情?C#==>高性能服务器?
回答
的
SocketAsyncEventArgs
类是一组增强的System.Net.Sockets.Socket
类的那 提供可由 专门高性能插座 一起使用的备选异步 模式的一部分 应用。这个类是 专门设计用于网络 服务器应用程序,需要高的 性能。应用程序可以专门或仅在目标热点 区域(例如,当接收到大量数据时)使用增强的异步模式 。
嗯,这是没有错的,但它使得它听起来好像这是所使用的一类特殊*,而不是常规*'Socket'的时候,其实它只是对某些类型的异步的事件类型调用'Socket' 。 – 2010-08-09 17:15:27
使用SocketAsyncEventArgs进行编程绝对不是“只是某种异步调用的事件”。当开始一个项目时,它有明确的选择:使用同步调用,使用经典异步(beginsend/callback/endsend)或使用SocketAsyncEvent。请参阅版本3.5中的套接字性能增强http://msdn.microsoft.com/en-us/library/bb968780.aspx – 2010-08-10 00:04:26
使用常规套接字有多种不同的方式。通常,异步使用可以更好地扩展
您可以使用异步套接字。如果那个不够好,您可以随时查看Network Direct SPI
,这是HPC SDK的一部分。请注意,Network Direct确实需要特定于硬件的提供商。
+1但是,没有用于网络直接管理的API,是吗? – 2010-08-09 17:14:23
这看起来很有趣,但硬件特定的要求让我怀疑它是否是一个好主意。另一个有趣的,但也许不明智的选择是只使用P/Invoke。 – 2010-08-09 17:16:21
谢谢,异步不会这样做,我们正在谈论超过5k客户端连接到服务器,并保持连接,并与服务器通信。我将看看网络直接SPI,谢谢 – aryaxt 2010-08-09 17:23:59
SocketAsyncEventArgs使用Windows I/O完成端口,这使得它更快。它是异步的,这使得它可以扩展。与SocketAsyncEventArgs真正的大交易是I/O完成端口。
有关如何使用SocketAsyncEventArgs,请参见http://www.codeproject.com/KB/cs/socketasynceventargs.aspx。
- 1. 高性能rtsp服务器
- 2. 如何提高Jenkins服务器性能?
- 3. 提高网络服务器的性能
- 4. Node.js中的高性能tcp服务器?
- 5. 使用libEvent的高性能服务器
- 6. 提高Web服务性能
- 7. 高性能UDP服务.NET
- 8. 高性能C#服务器套接字的技巧/技巧
- 9. 性能服务器脚本
- 10. 追加服务器性能
- 11. App> OAuth2服务器> Facebook> OAuth2服务器> App
- 12. Netty websocket服务器高可用性
- 13. 用缓存提高SQL服务器的性能可行吗?
- 14. 在服务器上缓存数据是否会提高性能?
- 15. 关于使用Java编写高性能服务器的问题
- 16. 高性能服务器 - 我应该使用什么?
- 17. 使用Perl的高性能套接字服务器
- 18. 在JAVA中提高Netty服务器的性能
- 19. 如何最大限度地提高服务器性能?
- 20. 提高更新查询连接链接服务器的性能
- 21. 意外行为<-> C++服务器
- 22. Realm对象服务器+服务器性能监控
- 23. Windows服务高性能和可伸缩性
- 24. 具有高可用性的高速缓存服务器
- 25. 我怎样才能提高性能使用SharePoint Web服务
- 26. C++ ostringstream提高IO性能?
- 27. Directadmin服务器性能比ispconfig低吗?
- 28. Spring云配置服务器。在性能
- 29. 服务器基准测试php性能
- 30. SQL *服务器常数值 - 性能
我最近看到这个,你可能会觉得很有趣:http://developers.slashdot.org/story/10/07/27/1925209/Java-IO-Faster-Than-NIO – AaronLS 2010-08-09 17:04:29
@AaronLS:它看起来像nio是一个异步套接字库,而.NET的套接字可以同时工作。 – 2010-08-09 17:05:35
无论语言如何,套接字类将在.NET中都是一样的,所以我更改了标签。 – 2010-08-09 17:05:58