gpt4 book ai didi

python - 客户端没有响应 - Python 中的多线程

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

我正在尝试创建 2 个线程。一个将始终在监听,第二个将检查服务器是否在监听。

Host='127.0.0.1'
Port= 5555
threads=[]
threads2=[]

def server() :
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((Host, Port))
while 1:
print("listen() ")
s.listen()
conn, address= s. accept()
with conn:
print(" Connected by", address)
while True:

data=conn.recv(1024)
print("from caller", representing(data))


def client () :
s= socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.bind(('127.0.0.1', 5555))
except socket.error as e:
if e.errno==errno.EADDRINUSE:
print("port in use")
else:
print("connected")
s.close()



served = threading.Thread(target=server)
threads.append(served)
served.start()
print("started the server thread")
time.sleep(2)
click =threading.Thread(target=client)
threads2.append(click)
click.start()
print("click started")

我得到以下输出

started the server thread
listen()
click started

在此之后它没有显示任何内容。

最佳答案

您正在尝试在服务器和客户端中绑定(bind) 套接字。您只能绑定(bind) 一次。 (参见 Python documentation on this

相反,对于客户端,您应该使用connect:

def client () :
s= socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
# use s.connect instead of s.bind
s.connect(('127.0.0.1', 5555))
except socket.error as e:
if e.errno==errno.EADDRINUSE:
print("port in use")
else:
print("connected")
s.close()

关于python - 客户端没有响应 - Python 中的多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58920353/

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