代码之家  ›  专栏  ›  技术社区  ›  Keith Cronin

在数据包到达客户端之前,我可以编辑来自服务器的数据包吗?

  •  1
  • Keith Cronin  · 技术社区  · 7 年前

    我在TCP上制作了一个简单的即时消息聊天客户端和服务器,这两个客户端和服务器都使用Adobe AIR。它工作得很好,这是一种学习基本网络编程的有趣方式。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Malt    7 年前

    你的问题很广泛。因此,答案也是广泛的。对这是可能的。

    为此,您需要让客户端和服务器之间的数据包通过第三个程序。有很多方法可以实现这一点。以下是非详尽列表:

    首先,在您自己的机器(客户机/服务器)上,您可以使用各种低级API从操作系统访问数据包。例如 iptables+nfqueue in Linux 或者 Windows Filtering Platform on Windows .

    其次,您可以通过故意让数据包通过一些 proxy program 它可能与客户端或服务器位于同一服务器上,也可能不位于同一服务器上。

    第三,您可以通过从网络本身提取数据包来访问数据包。例如,您可以将一些Linux机器设置为路由器,并使其位于客户端和服务器之间(只要它们不在同一台机器上)。Linux机器现在可以访问通过它的所有数据包,并且可以使用钩子(例如前面提到的nfqueue)将它们传递给各种用户空间程序。