GeekTools.Socks5Proxy 1.0.0

dotnet add package GeekTools.Socks5Proxy --version 1.0.0                
NuGet\Install-Package GeekTools.Socks5Proxy -Version 1.0.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="GeekTools.Socks5Proxy" Version="1.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add GeekTools.Socks5Proxy --version 1.0.0                
#r "nuget: GeekTools.Socks5Proxy, 1.0.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install GeekTools.Socks5Proxy as a Cake Addin
#addin nuget:?package=GeekTools.Socks5Proxy&version=1.0.0

// Install GeekTools.Socks5Proxy as a Cake Tool
#tool nuget:?package=GeekTools.Socks5Proxy&version=1.0.0                

GeekTools.Socks5Proxy

GeekTools.Socks5Proxy 是一个高性能的 SOCKS5 代理实现库,专门为 .NET 平台设计。它支持连接池、异步操作和身份验证,可以轻松地与 HttpClient 集成使用。

特性

  • ✨ 支持 SOCKS5 代理协议
  • 🚀 异步操作支持
  • 🔐 用户名/密码认证
  • 📦 连接池支持
  • ⌛ 连接超时控制
  • 🔄 自动重试机制
  • 📱 跨平台支持

安装

通过 NuGet 包管理器安装:

dotnet add package GeekTools.Socks5Proxy

使用方法

基本用法

// 创建代理实例
var proxy = new Socks5Proxy(
    proxyHost: "proxy.example.com",
    proxyPort: 1080,
    username: "user",  // 可选
    password: "pass"   // 可选
);

// 配置 HttpClient
var handler = new SocketsHttpHandler
{
    Proxy = proxy
};

var client = new HttpClient(handler);

使用连接池

var proxy = new Socks5Proxy(
    proxyHost: "proxy.example.com",
    proxyPort: 1080,
    useConnectionPooling: true,
    maxPoolSize: 100
);

自定义超时设置

var proxy = new Socks5Proxy(
    proxyHost: "proxy.example.com",
    proxyPort: 1080,
    connectionTimeout: 5000  // 5秒超时
);

异常处理

库定义了以下异常类型:

  • ProxyProtocolException: 代理协议相关错误
  • ProxyAuthenticationRequiredException: 需要认证
  • ProxyAuthenticationFailedException: 认证失败
  • ProxyConnectionException: 连接错误
try
{
    // 使用代理的代码
}
catch (ProxyAuthenticationFailedException ex)
{
    // 处理认证失败
}
catch (ProxyConnectionException ex)
{
    // 处理连接错误
}

性能优化建议

  1. 启用连接池以重用连接
  2. 适当设置最大连接池大小
  3. 合理配置连接超时时间

许可证

本项目采用 MIT 许可证。详见 LICENSE 文件。

贡献

欢迎提交 Issue 和 Pull Request!

更新日志

1.0.0

  • 初始发布
  • 实现基本的 SOCKS5 代理功能
  • 支持连接池
  • 支持用户名密码认证
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 is compatible. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.0

    • No dependencies.
  • .NETStandard 2.1

    • No dependencies.
  • net6.0

    • No dependencies.
  • net7.0

    • No dependencies.
  • net8.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.0 61 11/18/2024