You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何使用TCP连接192.168.10.11的5060端口时出现TimeoutError?

问题分析与解决方案

你的问题核心在于协议不匹配,让我一步步给你拆解:

  1. 你的代码使用的是TCP协议
    你创建socket时用了socket.SOCK_STREAM,这是TCP套接字,而TCP需要服务器端监听对应端口并接受连接请求。但你运行connect()时,服务器并没有在TCP 5060端口监听,所以连接请求超时,抛出TimeoutError。

  2. 服务器的5060端口是UDP协议
    你用nmap扫描时加了-sU参数(指定UDP扫描),结果显示5060/udp open|filtered sip——SIP协议默认确实常用UDP 5060端口,而非TCP。UDP是无连接协议,不存在“建立连接”的过程,所以你用TCP的connect()方法去尝试连接UDP端口,服务器根本不会响应这个请求,自然就超时了。

修正后的代码示例

如果你要和这个SIP服务器通信,需要改成UDP套接字:

import socket

HOST = '192.168.10.11'
PORT = 5060

# 创建UDP套接字
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# UDP无需connect,直接发送数据
message = b'Your SIP request here'
s.sendto(message, (HOST, PORT))

# 接收响应
data, addr = s.recvfrom(1024)
print(f"Received from {addr}: {data.decode()}")

s.close()

另外补充下:nmap的open|filtered状态意味着它无法完全确定端口是开放还是被防火墙过滤,但至少UDP 5060端口没有完全阻断,你可以用上面的UDP代码尝试通信。

内容的提问来源于stack exchange,提问作者Raady

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:18:11