2010-12-07 182 views
1

我想要做的就是转发每个请求进入我的服务器和端口,到同一台服务器和不同的端口,并可选择添加一个头。在C#中创建一个简单的代理转发服务器

这就是它。是否有一个非常简单的C#程序,我可以编写,它只需要从这里获取字节,并将它们推送到另一个端口,并且与响应一样,只是将它抛到客户端?

+0

转发TCP连接很容易,但添加一个头(可能是为了HTTP请求)需要一个代理来检查和解析请求。 – 2010-12-07 16:01:04

回答

2

sTCPPipe作者:Luigi Auriemma是一个非常简单的C++ TCP管道实现,它完全符合您的需求,但不允许添加额外的头文件。

对于执行HTTP头检测并充当代理而不仅仅是简单隧道的C#实现,请查看Mentalis proxy project。您可以轻松修改它以将所有请求定向到一个地址,而不是在HTTP主机标题中指定的地址,但源代表意大利面。

或者你也可以自己写一个TcpListener来监听8080端口,接受连接后连接到另一个主机(使用不同的套接字),然后中继两者之间的所有通信。如果您不使用非阻塞套接字,则需要使用几个线程来完成此操作。

如果是用于商业用途,那么编写代理的挑战就是确保它是可靠的,并且可以承受所有类型的缓冲区溢出攻击。

+1

代表意大利面是我最近一直在寻找的词组,谢谢:) – 2010-12-07 08:22:16