按某网上教程练习Python3.网络编程,二次运行服务端,提示:
socket.error: [Errno 98] Address already in use
原因是:socket默认不支持端口复用,如果要复用需要显示设定,允许地址重复使用:
serversocket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
代码如下:
# 创建 socket 对象
serversocket = socket.socket(
socket.AF_INET, socket.SOCK_STREAM)
# 获取本地主机名
host = socket.gethostname()
port = 9999
serversocket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
# 绑定端口
serversocket.bind((host, port))
本文介绍了一个常见的Python网络编程问题:如何解决因端口被占用而导致的服务无法启动的问题。通过设置socket选项SO_REUSEADDR为1,使得socket支持端口复用,从而可以在关闭服务后立即重新启动服务。
4万+

被折叠的 条评论
为什么被折叠?



