HevSocks5Service – 简单的 Socks5 服务

HevSocks5Service 是基于 GLib/GObject/GIO 的简单 Socks5 服务实现,参考 RFC1928。初步不支持任何认证且仅支持 CONNECT 命令,采用异步+多线程模式。

在 HevSocks5Service 的 Splice 实现中仍然没有直接使用 GIOStream 的 splice_async 方法,原因和之前在 HevTLSTunnel 中遇到的问题一样,GIO 库中 GTask 的线程池最大并发线程数被硬编码限制为了 10 个,从而使异步方法的并发数限制在一定的值以下。虽然不知道这样设计的目的何在,但这已经影响了对相关的异步方法的调用。

另外,通过对比使用 GIO 和直接使用系统原生 API,感觉基于 GObject 的实现对资源的使用相比较多,库的层层抽象及设计的不合理也使得实现不灵活,或也只能不按套路走。是不是我应该不要再过多的“依赖” GLib 及相关的库了?

Over!

Leave a Reply

Your email address will not be published. Required fields are marked *