Я использую DreamHost в качестве хост-провайдера для моего server.py. Если я запускаю свой код локально, функция setsockopt успешно устанавливает для параметра SOCKET_REUSEADDR значение True, и я могу эффективно использовать порт. Но когда я запускаю server.py на хостинге, я получаю ошибку «[Errno 98] Используемый адрес» *
Запуск `ps aux | grep python 'и ручное закрытие процессов с помощью kill -9 PID дает мне возможность повторно использовать порт в начале. Но разве это не значит, что «socket.setsockopt» не работает?
server.py
host = 'Dreamhost_IP'
port = 33000
server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
server_socket.bind((host,port))
.
.
.
.
.
if __name__=="__main__":
server_socket.listen(5)
print('waitin for connections')
accept_thread = threading.Thread(target = accept_connections)
accept_thread.start()
accept_thread.join()
server_socket.close()
I'm expecting to be able to reuse the desired port by overriding the wait time with SO_REUSEADDR. If I use '127.0.0.1' as 'host' and 33000 as 'port', I can successfully rerun the server on that port.