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

时间:2015-11-13 12:38:00

标签: python c sockets

如果套接字程序在端口上运行(例如6053),并且firewall函数recv read和{{1}中未添加规则被阻止了。

我们如何在recvfromC中检查此问题并在Linux计算机上报告python错误。

2 个答案:

答案 0 :(得分:2)

尝试使用socket.connect()连接该端口,如果连接不成功,则显示Port未打开的消息。

答案 1 :(得分:0)

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

TCP: nmap使用TCP SYN扫描或TCP连接扫描等技术,服务器将使用ACK-RST数据包回复SYN请求的封闭端口。您可以注意到,它是在三次握手(连接建立)本身时确定的。

UDP: nmap还有助于UDP扫描,在UDP数据包到达封闭的UDP端口的情况下,应返回基于ICMP的“端口无法访问”数据包(这也取决于OS)。与TCP不同,UDP不是基于连接的协议,ICMP也是无连接的,因此您可能需要在短时间内发送大量UDP数据包,并根据响应或类似逻辑进行评估。

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