用于windows的高性能套接字库



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

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

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

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

一些重要部件:

  • B反应器(事件循环)
  • BConnection(TCP的抽象)
  • BDatagram(UDP的抽象)

它大量使用基于流的编程。例如,BConnection,TCP的抽象,使用StreamPassInterface和StreamRecvInterface通用流I/O接口。这是非常有用的;例如,如果您需要为应用程序添加SSL支持,只需在BConnection上抛出一个BSSLConnection对象即可。

虽然大部分框架都有很好的文档记录,但我还没有提供任何关于如何使用它的指南。你可以把这个基本程序作为一个起点。tun2socks程序,尤其是附带的较小的udpgw程序,虽然不是用来学习的,但可能很有用。

由于您提到了SOCKS,在我的框架中,我还实现了一个非常简单的SOCKS5客户端(无身份验证等),它由tun2socks使用。

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

相关内容

  • 没有找到相关文章

最新更新