【问题标题】:C# Sockets - Recognize same computerC# Sockets - 识别同一台计算机
【发布时间】:2023-03-27 07:11:01
【问题描述】:

我正在做一个包含 Udp 和 Tcp 套接字服务器客户端的软件。我希望只有当客户端连接到 TCP 服务器时,Udp 才会响应它。我知道该怎么做,但我有一个问题——如果有人在同一个 LAN 上使用两台不同的计算机,那么外部 IP 将是相同的,因此我在检查 tcp/udp 连接时会遇到问题。 所以我一开始坚持当客户端连接到我的服务器时,他会发送他的内部 IP,我会用它来检查它是否真的是一台计算机或更多。

但我不知道是否有更简单的方法,因为那个方法相当复杂。有什么想法吗?

【问题讨论】:

  • 不需要“发送内部IP”。对于 TCP 连接,这是由 NAT 进行的。两个连接指向同一个外部 IP,但 NAT 记住一个连接到内部 IP“A”,另一个连接到“B”。
  • 很好,我不知道,好帖子。
  • 如果您还需要通过 NAT 的 UDP 连接,而不是搜索 UDP hole punching
  • @i486 谢谢 :) 但在我的检查中,我将检查外部地址以查看它们是否是来自同一网络的多个连接,我需要将 TCP ip 与 UDP ip 进行比较,看看是否有一个匹配,如果是这样 - udp 服务器将处理用户,因为他已连接到 TCP。所以...我需要以某种方式更改检查?
  • 为每个连接分配一个 ID,并使 UDP 数据包包含该 ID。匹配 ID,而不是“内部 IP”。内部 IP 没有很好的定义。一台计算机可以有几十个。

标签: c# sockets


【解决方案1】:

为每个连接分配一个 ID,并使 UDP 数据包包含该 ID。匹配 ID,而不是“内部 IP”。

内部 IP 没有很好的定义。一台电脑可以有几十个。

【讨论】:

    猜你喜欢
    • 2020-07-03
    • 1970-01-01
    • 1970-01-01
    • 2016-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-09
    相关资源
    最近更新 更多