gpt4 book ai didi

python - 在 python 2.6 中关闭套接字的正确方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 12:52:10 25 4
gpt4 key购买 nike

我有一个简单的服务器/客户端。我正在使用 netcat 作为客户端来测试服务器。如果我在客户端退出之前停止服务器,我将在一段时间内无法再次启动服务器,并且出现此错误:“[Errno 98] 地址已被使用"

但如果我先关闭客户端,然后服务器停止,我就不会有这个问题。

我的服务器套接字是这样工作的:

try:
s=socket
s.bind(..)
s.listen(1)
conn,addr=s.accept()
finally:
conn.close()
s.close()

我感觉服务器没有正确关闭套接字。但我不知道如何解决这个问题。

最佳答案

你关闭套接字就好了。但是,套接字在套接字关闭后会继续使用资源几分钟,因此如果远程端错过了一个数据包,则可以重新发送该数据包。

您应该能够通过在调用 bind 之前调用以下命令来解决它:

s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

这将告诉操作系统您希望允许套接字的多个绑定(bind)。

关于python - 在 python 2.6 中关闭套接字的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2765152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com