2010-12-07 186 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