如何在socket编程中知道端口是否打开/关闭?

2024-09-30 04:28:49 发布

您现在位置:Python中文网/ 问答频道 /正文

如果一个套接字程序在一个端口上运行(比如6053),并且规则没有添加到firewall中,recvread和{}将被阻止。在

我们如何在Cpython中检查这个并在linux机器上报告Port not opened错误。在


Tags: 端口程序机器port规则linux报告错误
2条回答

像nmap这样的工具可以帮助确定特定端口是打开还是关闭。在

TCP: nmap使用诸如TCP SYN scan或TCP Connect scan这样的技术,在关闭端口的情况下,服务器将用ACK-RST数据包来响应SYN请求。您可以注意到,它是在3次握手(建立连接)时确定的。在

UDP:nmap也有助于UDP扫描,如果UDP数据包到达一个关闭的UDP端口(这也取决于操作系统中的堆栈),则应返回基于ICMP的“无法访问端口”数据包。与TCP不同,UDP不是基于连接的协议,ICMP也是无连接的,因此您可能需要在短时间间隔内发送大量UDP数据包,并根据响应或类似的逻辑进行评估。在

您可以使用类似的技术/逻辑来确定特定端口是打开还是关闭,并为用户闪存适当的消息。在

尝试使用连接到该端口连接插座(),如果连接不成功,则显示端口未打开的消息。在

相关问题 更多 >

    热门问题