如果python中socket 绑定的地址正在使用,往往会出现错误,
在linux下:
则会显示“ socket.error: [Errno 98] Address already in use”
在windows下:
则会显示 “socket.error: [Errno 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次”
这是因为socket默认不支持地址复用,如果要复用需要显示设定,即在绑定前调用setsockop函数t让套接字允许地址重用:socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
self.recSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) self.recSocket.settimeout(CHECK_TIMEOUT) self.recSocket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) self.recSocket.bind(('', UDP_PORT))