2009-12-10 33 views
1

我有一個在Windows XP下運行的實驗性TCP/IP堆棧。該堆棧使用LSP和NDIS IM繞過Windows TCP/IP堆棧。我現在需要爲此提供一個代理服務來支持其他想要使用實驗堆棧的平臺。代理必須對客戶端透明(無客戶端配置)。我想在用戶模式下運行這個代理服務,其中我使用正常的Windows TCP/IP與客戶端建立TCP連接,通過實驗堆棧以另一種方式建立TCP連接。一旦以這種方式連接,代理只需在兩者之間讀/寫。我所面對的問題是如何從客戶端接收一個指向某個地址/端口的傳入數據包,並將其重定向到我的代理,同時仍保持原始目標地址/端口的知識,因此代理可以將數據包到適當的目的地。我將不勝感激任何想法。謝謝...用於Windows XP的透明代理

回答

0

發送一個數組的目的地,按逆時針順序讀[我希望這個詞在這種情況下]的順序。並且每次從節點讀取消息時,該節點將刪除零處的元素並將所有其他元素向前移動。 。 。 。這是一個相當簡單的問題,我認爲。 。 。

詳細信息:我在第一份工作中工作過類似的系統。發送機器將只知道目的地,它將與目標端口和IP一起發送。那麼讓我們稱之爲「郵遞員」服務器檢查哪些服務器可用,即。僞代碼: 我喜歡python編碼,所以我討厭聲明變量[對不起]我希望你能理解

nodes = postman.checkAvailableNodes()\\this will return a matrix with each element containing an ipaddress and available port on whichever available node on the network
\\loop through all available destinations and map a route to the destination server for n in nodes:
nodeArray2 = n[0].checkavailablenodes()
if length(nodeArray2) > 0:
for x in nodeArray2: . . . .

反正。 。 。一旦你得到了目標節點和端口,你將IP和端口號添加到一個稱爲目的地的數組中,每次你通過服務器時會減少一個元素,最終你會到達服務器