gpt4 book ai didi

python - 简单服务器-客户端程序的问题

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

我运行以下脚本:

import socket, threading, time,Queue
if __name__ == '__main__':
pass

print("Starting...")

def server():
s = socket.socket()
host = socket.gethostname()
port = 1247
s.bind((host,port))
s.listen(5)

while True:
c, addr = s.accept()
print("Connection accepted from " + repr(addr[1]))
c.send("Server approved connection\n")
print (addr[1]) + ": " + c.recv(1026)
c.close()

def client ():
time.sleep(5)
print("Client Started")
s = socket.socket()
host = socket.gethostname()
port = 1247
s.connect((host, port))
print (s.recv(1024))
inpt = raw_input('type anything and click enter... ')
s.send(inpt)
print ("the message has been sent")

q = Queue.Queue()
t = threading.Thread(client(), args = (q))
t.daemon = True
t.start()

server()

我收到此错误:

Starting...
Client Started
return getattr(self._sock,name)(*args)
socket.error: [Errno 111] Connection refused

请注意,端口 1247 在我的设备(Ubuntu 操作系统)中已打开。

连接被拒绝意味着没有任何可连接的内容。但是服务器出了什么问题,我找不到它的问题。经过一周的尝试后,我们非常感谢任何帮助!

最佳答案

当您创建线程时,您不小心启动了客户端。 threading.Thread 的第一个参数是 client(),它执行客户端,包括初始sleep。这会阻塞主线程。您应该将其更改为

t = threading.Thread(target=client, args = (q,))

目标参数需要一个可调用对象,即您的客户端。一旦启动该线程,它将在不同的线程上执行客户端。请注意,client 后面缺少 ()

关于python - 简单服务器-客户端程序的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45813950/

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