使用套接字的C#代理,我应该怎么做?
问题描述:
我正在使用.NET和C#编写代理。 我还没有做过太多的Socket编程,我不确定最好的方法来解决它。 执行此操作的最佳方法是什么? 我应该使用同步套接字,异步套接字吗?请帮忙!使用套接字的C#代理,我应该怎么做?
它必须...
- 接受 两个不同的端口从客户端的连接,并能够 收到的 同时两个端口的数据。
在两个不同的端口上连接到服务器,并且能够同时在两个端口上发送数据。
立即连接到服务器,并在客户端连接立即开始转发数据包。
按照收到的顺序转发数据包。
尽可能延迟。
我不需要多 客户端连接到代理服务器的能力,但它 将是一个不错的功能,如果它很容易 实现。
客户--------- -------代理服务器
--- | ---------------- - | ---------------- |
端口< -------->端口< ------->端口
端口< -------->端口< ------->端口
答
请检查出PortFusion!它是一个完整的,积极使用和开发的分布式反向代理解决方案,用于全部基于TCP的流量。它是为.NET 4.0编写的,并附带完整的源代码。
我测试了.NET 3.5中引入的ReceiveAsync和SendAsync方法,但未发现它们的吞吐量与同步吞吐量一样高 - 异步应用在大量并发客户端时应该扩展得更好。
为控制客户数量最大吞吐量:使用同步方法 到达最大并发连接数:异步
你可以限制你的代码到Windows Server 2008上运行? – 2010-04-12 09:31:53
不,它必须至少在Windows 7上运行。 – Kin 2010-04-12 10:20:29