gpt4 book ai didi

sockets - 如何检查打开的端口是 TCP 还是 UDP?

转载 作者:行者123 更新时间:2023-12-01 23:20:12 25 4
gpt4 key购买 nike

我正在制作一个端口扫描器。我可以通过尝试与端口建立连接来检查端口是否打开,但是,我将如何检查打开的端口是 udp 还是 tcp?

最佳答案

... how I will check the open port is udp or tcp?

您似乎想到的是一条街道,其中端口是门牌号,并且在每个房子中可能存在 TCP 和/或 UDP。你敲门然后需要弄清楚是UDP还是TCP打开了门。但这种观点是错误的。

它更像是两条独立的街道,只是门牌号相同。 TCP 有一条街,UDP 有另一条街,您可以通过选择套接字类型来决定走哪条街。无需检查谁住在那儿,因为在 TCP 街上只有 TCP 可以住,而在 UDP 街上只能住 UDP。

使用 AF_INET(或 AF_INET6)和 SOCK_STREAM 创建 TCP 套接字。 UDP 套接字使用 SOCK_DGRAM 而不是 SOCK_STREAM。因此,您可以通过创建套接字了解您的期望,即走哪条街。

除此之外,UDP 没有实际连接的概念:虽然可以连接 UDP 套接字,但这将在本地套接字上设置目标地址。它实际上并不像 TCP 那样向对等方发送任何数据来建立连接。因此,UDP 套接字上的 connect 基本上总是会成功,无论目的地是否有流量(即端口“打开”)。

关于sockets - 如何检查打开的端口是 TCP 还是 UDP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68193407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com