2011-12-03 46 views
0

我在Windows 7上使用Visual Studio Express,並試圖在C++中創建TCP代理服務器。我現在有一臺服務器可以工作,但是,使用Internet Explorer中的代理設置,它只會發送和接收字節。我無法將數據寫入我的屏幕。C++使用Winsock寫入/讀取/插入套接字

我知道這可以用C中的read()write()來完成,但我認爲這不適用於Windows上的C++。有其他選擇嗎?

另外,任何人都可以給我一個如何實現代理服務器的指導方針?我真的很感激任何信息,教程,建議或任何有用的東西。我對套接字編程相當陌生,並且網絡上的C++代理服務器似乎並沒有多少意義。

基本上特林此轉換成代理服務器:http://msdn.microsoft.com/en-us/library/ms737593(v=VS.85).aspx

提前感謝!

+0

編寫代理服務器並編寫一個在套接字上偵聽的服務器是兩回事。你給上面的鏈接是針對後者,而不是前者。我會建議學習boost :: asio(http://www.boost.org/doc/libs/1_48_0/doc/html/boost_asio.html),而不是與WinSock混淆。 –

回答

2

代理服務器只是一個監聽服務器,它接受入站客戶端連接,使出站客戶端連接到另一個服務器,然後在兩個連接之間來回傳遞數據。您已經看過MSDN的服務器示例,現在學習它的client example。一旦你理解了,然後學習RFC 2616,它解釋了HTTP的工作原理,並研究了Web Proxy Tunneling,它解釋了HTTP CONNECT命令如何工作。與代理交談時,Internet Explorer使用CONNECT

+0

取決於代理的類型,http代理是,襪子不是。它使用襪子協議。 – johnathon

+0

+1以獲得良好的建議 – johnathon

+0

SOCKS代理比HTTP代理更容易實現。請參閱SOCKS v4(http://ftp.icm.edu.pl/packages/socks/socks4/SOCKS4.protocol)和SOCKS v5的RFC 1928(http://www.ietf.org/rfc/rfc1928.txt)。 –