连接式扫描把 "端口是否开放" 转化为一个可判定的连接结果,动作分为四步。第一步,准备候选端口集合,即待试探的端口号列表。第二步,对每个端口调用 `socket` 创建一个 IPv4/TCP 套接字。第三步,调用 `connect` 向目标地址与端口发起连接:TCP 下由内核协议栈完成三次握手,返回 0 表示握手完成、端口开放。返回 -1 且 errno 为 ECONNREFUSED 表示端口关闭。超时或无响应表示路径上存在过滤设备。第四步,无论成败都调用 `close` 释放本次试探使用的描述符,再处理下一个端口。