【问题标题】:Is it possible to create a send packets to client using its ip/host from a third party program?是否可以使用第三方程序的 ip/host 创建向客户端发送数据包?
【发布时间】:2018-03-22 18:53:16
【问题描述】:

我有一个简单的服务器客户端(TCP/UDP 套接字)程序。我知道服务器将自身绑定到主机+端口,并且连接的客户端获得一个(通常是随机的)端口。让我们调用客户端端口。

是否可以创建一个第三方程序,可以使用其客户端端口连接到客户端。

(我知道在这种情况下识别数据包有问题,但理论上应该可以工作,但我不知道如何。)

例如:

  1. 服务器:123.456.789.159:80
  2. 运行在 1.2.3.4 上的客户端连接到服务器 (123.456.789.159:80) 并获得端口:60789。(现在服务器将数据发送到 1.2.3.4:60789)
  3. 我在第三台机器上安装了第三方程序。它可以向客户端发送数据包发送到 1.2.3.4:60789 吗?

任何语言的任何示例也会有所帮助。

【问题讨论】:

  • 如果客户端有活动端口60789 并且客户端的操作系统正在侦听该端口上的传入 TCP 连接......并且您的 第三方程序 能够创建套接字
  • 请记住 UDP 是无连接的,这意味着您可以从任何地方向 UDP“客户端”“服务器”发送数据包。使用 TCP 是不可能的,除非您想欺骗数据包(这被认为是一件坏事)。

标签: sockets networking tcp ip port


【解决方案1】:

您不能“重用”客户端的 TCP 端口。您必须建立与客户端的套接字连接,这在端口未侦听时是不可能的。由于不属于活动套接字,伪造的 TCP 数据段将被丢弃。

使用 UDP,这是可能的,因为没有连接握手,并且 UDP 套接字只有几个状态。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-27
    • 1970-01-01
    • 2017-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-13
    相关资源
    最近更新 更多