1

我有一个在 Windows XP 下运行的实验性 TCP/IP 堆栈。此堆栈使用 LSP 和 NDIS IM 绕过 Windows TCP/IP 堆栈。我现在需要为此提供代理服务,以支持其他想要使用实验堆栈的平台。代理必须对客户端透明(无客户端配置)。我想在用户模式下运行此代理服务,其中我使用普通 Windows TCP/IP 与客户端建立 TCP 连接,并通过实验堆栈以另一种方式建立 TCP 连接。一旦以这种方式连接,代理只会在两者之间进行读/写。我正在努力解决的问题是如何从客户端获取一个发往某个地址/端口的传入数据包并将其重定向到我的代理,同时仍然保持对原始目标地址/端口的了解,因此代理可以将数据包转发到正确的目的地。我会很感激这方面的任何想法。谢谢...

4

1 回答 1

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

于 2011-03-08T08:43:47.723 回答