Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于windows的高性能套接字库_Windows_Sockets_C10k - Fatal编程技术网

用于windows的高性能套接字库

用于windows的高性能套接字库,windows,sockets,c10k,Windows,Sockets,C10k,我在POCO库中看到了一个非常好的套接字库。 这使用了一种既适用于linux系统又适用于windows系统的“经典”方法,主要是基于选择的方法 我想知道是否有一些特定的windows使用异步IO(完成端口?),因为我想在高性能代理/socks服务器上使用它。也许Boost::ASIO是您想要的?作为我开源的一部分,我开发了一个事件驱动(单线程)C语言的跨平台网络编程框架。它在Linux上使用epoll,在Windows上使用IOCP 一些重要部分: (事件循环) (TCP的抽象) (UDP的抽

我在POCO库中看到了一个非常好的套接字库。 这使用了一种既适用于linux系统又适用于windows系统的“经典”方法,主要是基于选择的方法


我想知道是否有一些特定的windows使用异步IO(完成端口?),因为我想在高性能代理/socks服务器上使用它。

也许Boost::ASIO是您想要的?

作为我开源的一部分,我开发了一个事件驱动(单线程)C语言的跨平台网络编程框架。它在Linux上使用epoll,在Windows上使用IOCP

一些重要部分:

  • (事件循环)
  • (TCP的抽象)
  • (UDP的抽象)
它大量使用了。例如,TCP的抽象BConnection使用和通用流I/O接口。这是非常有用的;例如,如果您需要向应用程序添加SSL支持,只需在BConnection上抛出一个对象即可

虽然大部分框架都有很好的文档记录,但我还没有提供任何关于如何使用它的指南。您可以将其用作起点。虽然不是为了学习,但该计划,尤其是附带的较小的udpgw计划可能是有用的


既然您提到了SOCKS,在我的框架中,我还实现了tun2socks使用的(无身份验证等)。

我可以提出一个我为网络游戏编写的C库。此库用于高容量同时短TCP连接。 它使用异步epoll、kqueues、IOCP或同步线程。 该接口非常简单,并以node.js的工作方式通过回调进行抽象。 作为echo服务器,它每秒可以处理60k个请求。
请参见

他们是否为windows使用了特定的功能?重叠端口还是完成端口?它们执行特定的Windows操作,是的。Boost抽象了任何给定操作系统的细节,但这里有一个答案可能会有所帮助:听起来不错。我去看看。但是我主要考虑我的项目的C++实现。从我自己的经验来看,C更适合网络服务器。就开源软件而言,它似乎也被更广泛地用于这一目的;考虑Apache、LoctTPD、NGNX、未绑定、后缀、OpenVPN、清漆……Boad有一个称为BADASS的异步套接字服务吗?因为那样会很酷@Ambroz我同意你的观点,C似乎被更广泛地使用,至少在开源软件中是如此。另一方面,C++在当今也应该是同样好的。我在考虑boost.asio上jmbeck的建议,我想知道这是否足够灵活,适合我的提议,是否不会引入不必要的复杂性。。