作者:朱金灿
来源:clever101的专栏
为什么大多数人学不会人工智能编程?>>>
在windows客户端使用QTcpSocket连接一个ubuntu服务端程序,出现套接字操作超时的错误。开始感觉还莫名其妙的,因为之前连接都是好好的。首先检查是否是windows防火墙是否限制了应用程序通过。在windows防火墙上都设置允许应用程序通过后,依然出现套接字操作超时的错误。看来问题不是出在windows客户端,而是出在ubuntu服务端。我先判断ubuntu服务端的端口没有开放,先开放一下端口(我所用的端口为6802),运行命令:
# 开放6802端口
sudo ufw allow 6802
# 开启防火墙
sudo ufw enale
# 重启防火墙
sudo ufw reload
# 查看已经开启的端口
sudo ufw status
开启6802端口后,启动服务端程序又出现一个bind port的错误,原来6802端口被占用了,绑定失败。因此需要查询一下被哪个进程占用了,运行命令:
netstat -ap|grep 6802
查询结果如下:
可以看到6802端口已经被18645这个进程占用了。现在要把18645这个进程杀死,命令如下:
# 杀死ID为18645的进程
kill -9 18645
至此问题得到彻底解决。