gpt4 book ai didi

python - 如何在 Python 中使用同一个端口两次

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

即使使用 REUSEADDR 选项,我仍然无法重用同一组端口。它给了我一个 98,“地址已在使用”错误。

有没有办法在第二组套接字之前杀死第一组套接字,或者解决这个问题?

在下面的代码中,我做了两次完全相同的事情。

servers = []
port_list = [i for i in range(40007, 40107)]
for port in port_list:
ds = ('', port)
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server.bind(ds)
server.listen(1)
servers.append(server)

found,_,_ = select.select(servers, [], [])
found = found[0]
conn, addr = found.accept()
print 'Connected by', addr
data = conn.recv(1024)
print "received", data
conn.sendall("message!!")

conn.close()



#time.sleep(10) # even this doesn't work


port_list = [i for i in range(40007, 40107)]
for port in port_list:
ds = ('', port)
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server.bind(ds)
server.listen(1)
servers.append(server)

found,_,_ = select.select(servers, [], [])
found = found[0]
conn, addr = found.accept()
print 'Connected by', addr

data = conn.recv(1024)
print "received", data
conn.sendall("message!!")

最佳答案

完成后您需要关闭服务器套接字。 SO_REUSEADDR 不允许您使用打开 套接字的地址,只有最近关闭但仍徘徊在 TIME_WAIT 状态的套接字.

关于python - 如何在 Python 中使用同一个端口两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38088342/

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