我正在尝试连接到程序通过 VNC,它会扫描 LAN 中是否有连接到我的散热器阀门的“Cube”(MAX eQ-3)。
程序给出错误“[99]绑定套接字时无法分配请求的地址”。
当我在笔记本电脑上运行该程序时,没有任何问题,一切正常。
因此,只有通过 VNC 连接时才会出现错误。
我在 Raspberry Pi 2 上运行tightvncserver
,参数如下:
/usr/bin/tightvncserver :1 -geometry 1024x600 -depth 24 -dpi 96*
我不知道如何解决这个问题......
这是执行 max_home_automation 之前的输出:
pi@HomeBox2:~/vnc-server $ sudo netstat -tulpen
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 1000 36997 7448/Xtightvnc
tcp 0 0 0.0.0.0:6001 0.0.0.0:* LISTEN 1000 36995 7448/Xtightvnc
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 8339 366/sshd
tcp6 0 0 :::8080 :::* LISTEN 0 9866 367/domoticz
tcp6 0 0 :::22 :::* LISTEN 0 8341 366/sshd
tcp6 0 0 :::6144 :::* LISTEN 0 9868 367/domoticz
udp 0 0 0.0.0.0:68 0.0.0.0:* 0 5855 405/dhcpcd
udp 0 0 192.168.1.120:123 0.0.0.0:* 106 5947 391/ntpd
udp 0 0 127.0.0.1:123 0.0.0.0:* 0 8319 391/ntpd
udp 0 0 0.0.0.0:123 0.0.0.0:* 0 8306 391/ntpd
udp 0 0 0.0.0.0:5353 0.0.0.0:* 105 6915 266/avahi-daemon: r
udp 0 0 0.0.0.0:40423 0.0.0.0:* 105 6917 266/avahi-daemon: r
udp6 0 0 fe80::63a3:60e5:29b:123 :::* 106 5901 391/ntpd
udp6 0 0 ::1:123 :::* 0 8321 391/ntpd
udp6 0 0 :::123 :::* 0 8303 391/ntpd
udp6 0 0 :::36032 :::* 105 6918 266/avahi-daemon: r
udp6 0 0 :::5353 :::* 105 6916 266/avahi-daemon: r
执行后在这里:
pi@HomeBox2:~/vnc-server $ sudo netstat -tulpen
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 1000 36997 7448/Xtightvnc
tcp 0 0 0.0.0.0:8081 0.0.0.0:* LISTEN 1000 64705 13932/max_home_auto
tcp 0 0 0.0.0.0:6001 0.0.0.0:* LISTEN 1000 36995 7448/Xtightvnc
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 8339 366/sshd
tcp6 0 0 :::8080 :::* LISTEN 0 9866 367/domoticz
tcp6 0 0 :::22 :::* LISTEN 0 8341 366/sshd
tcp6 0 0 :::6144 :::* LISTEN 0 9868 367/domoticz
udp 0 0 0.0.0.0:68 0.0.0.0:* 0 5855 405/dhcpcd
udp 0 0 192.168.1.120:123 0.0.0.0:* 106 5947 391/ntpd
udp 0 0 127.0.0.1:123 0.0.0.0:* 0 8319 391/ntpd
udp 0 0 0.0.0.0:123 0.0.0.0:* 0 8306 391/ntpd
udp 0 0 0.0.0.0:5353 0.0.0.0:* 105 6915 266/avahi-daemon: r
udp 0 0 0.0.0.0:40423 0.0.0.0:* 105 6917 266/avahi-daemon: r
udp6 0 0 fe80::63a3:60e5:29b:123 :::* 106 5901 391/ntpd
udp6 0 0 ::1:123 :::* 0 8321 391/ntpd
udp6 0 0 :::123 :::* 0 8303 391/ntpd
udp6 0 0 :::36032 :::* 105 6918 266/avahi-daemon: r
udp6 0 0 :::5353 :::* 105 6916 266/avahi-daemon: r
这没有任何回报:
pi@HomeBox2:~/vnc-server $ sudo netstat -ulpen | awk '$1 !~ /^udp/ {print}; $4 ~ /:23272$/ {print}'
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
答案1
“最大!”软件使用端口 23272 上的 UDP 多播来发现本地网段中的“Cube”(从他们的文档de.eq3.max.al.local.finder.CubeFinder
(德语)以及来自 Java 的类的反编译代码软件)。
您看到的错误表明该程序无法绑定到该端口,因此其他程序似乎正在使用它(不同的程序或同一程序的另一个实例)。
要检查哪个进程正在使用端口 23272,请运行
netstat -ulpen | awk '$1 !~ /^udp/ {print}; $4 ~ /:23272$/ {print}'
在程序失败的 Raspberry Pi 上。
要查看所有进程名称和 PID,您可能需要以 root 权限运行它。
此外,您还可以启动“MAX!”从终端(而不是桌面/菜单快捷方式)打开软件以查看它可能打印到的任何信息stdout
。