我试着做两条线。一个将始终在侦听,另一个将检查服务器是否在侦听
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
:相关问题 更多 >
编程相关推荐