Traceback (most recent call last):
File “/home/python/Desktop/test/web服务器线程版.py”, line 86, in
main()
File “/home/python/Desktop/test/web服务器线程版.py”, line 80, in main
web_server = WebServer(port)
File “/home/python/Desktop/test/web服务器线程版.py”, line 30, in init
self.web_server.bind(("", port))
OSError: [Errno 98] Address already in use
关于这个错误提示是地址已经被占用
有如下几种情况:
1、端口真正的被其他应用程序占用
这时你需要去查看端口是否被其他应用程序占用,如果占用可以关掉程序或者我们换一个端口即可
2、如果之前你已经正常运行改程序了,之后点击关闭程序在点击开始时报这个错(或者重新运行服务程序),这时因为tcp本身为了数据传输安全考虑产生的问题,一般关掉服务端程序后,所占用的端口要继续占用1-3分钟的样子,所以如果重启的服务的话会报地址已经被占用。
这时可以在绑定端口之前加上下面的语句(web_server是服务器套接字)
web_server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
*****注意
上面的语句要加到绑定端口之前如下
self.web_server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self.web_server.bind(("", port))
如果加到绑定端口下面是不起作用的