2009-12-10 25 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和端口号添加到一个称为目的地的数组中,每次你通过服务器时会减少一个元素,最终你会到达服务器