Install
openclaw skills install udpHelps with UDP sockets, datagram send/receive, and network debugging. Use when the user needs to send or receive UDP packets, write UDP client/server code, test UDP ports, or debug packet loss and firewall issues.
openclaw skills install udp本 Skill 帮助处理 UDP 数据报、套接字编程和常见调试:收发报文、测试端口、以及排查丢包、无响应或防火墙等问题。
当用户提到或需要:
netcat(nc)(若已安装):
nc -u host port
发一条即收(需对端有响应):
echo "hello" | nc -u -w1 host port
PowerShell(Windows):
$udp = New-Object System.Net.Sockets.UdpClient
$bytes = [Text.Encoding]::UTF8.GetBytes("hello")
$udp.Send($bytes, $bytes.Length, "host", port)
$udp.Close()
收包需异步或单独脚本,通常配合简单服务端测试。
注意:UDP 无“连接建立”,Test-NetConnection 默认测 TCP;测 UDP 往往要本机发包看对端是否回复或抓包确认。
根据用户 OS 和是否已安装 nc 给出对应方案。
无需 listen/accept;一个 socket 可收发多个对端(用 recvfrom 返回的地址区分)。
socket.socket(socket.AF_INET, socket.SOCK_DGRAM),sendto()/recvfrom();服务端先 bind() 再 recvfrom()。dgram.createSocket("udp4"),send()+bind(),事件 message(带 msg、rinfo)。net.Dial("udp", "host:port") 或 net.ListenPacket("udp", ":port"),ReadFrom/WriteTo。UdpClient,Send()/Receive() 或 SendAsync/ReceiveAsync;服务端 Bind() 后 Receive(ref remoteEP)。按用户技术栈给出最小示例,并提醒:UDP 不保证送达,应用层需自己处理超时、重传或丢包逻辑(若需要可靠语义)。
| 现象 | 可能原因 | 建议 |
|---|---|---|
| 发出去没响应 | 对端未监听、防火墙丢弃、或对端不回复 | 确认对端服务已起并绑定正确端口;检查本机与对端防火墙/安全组是否放行 UDP 该端口 |
| 收不到包 | 未 bind 或 bind 地址不对、防火墙、路由 | 服务端必须先 bind;检查监听 0.0.0.0 还是某网卡 IP;抓包确认是否有到达 |
| 丢包严重 | 缓冲区满、网络拥塞、应用处理慢 | 适当增大 recv 缓冲区;提高处理速度或做队列;避免在 recv 回调里做重活 |
| Address already in use | 端口被占用或 SO_REUSEADDR 未设 | 换端口或设置 SO_REUSEADDR(依语言/OS),便于重启快速复用端口 |
按用户需求给出该语言下的关键 API 名和选项,不展开协议细节。