gpt4 book ai didi

python - 当客户端和服务器在同一进程上运行时,为什么连接会被拒绝?

转载 作者:行者123 更新时间:2023-12-03 11:53:20 25 4
gpt4 key购买 nike

我在同一过程中运行客户端和服务器时遇到问题。每次我尝试将客户端连接到服务器时,都会出现此错误:

Traceback (most recent call last):
File "dirWatch.py", line 78, in <module>
startDirWatch(sLink)
File "dirWatch.py", line 68, in startDirWatch
sC.client('/home/homer/Downloads/test.txt')
File "/home/homer/Desktop/CSC400/gsync/serverClient.py", line 15, in client
sock.connect((host,port))
File "<string>", line 1, in connect
socket.error: [Errno 111] Connection refused

这是我使用的代码,我基本上是在尝试制作文件同步程序。我是StackOverflow的新手,所以如果我没有提供更多详细信息,请原谅。这是我正在测试客户端和服务器代码的代码:
thread.start_new_thread(sC.server ,('localhost', 50001))
sC.client('/home/homer/Downloads/test.txt')

这是客户端服务器的实际代码,非常基本,我只希望它们连接:
def client(filename, host = defaultHost, port = defaultPort):
sock = socket(AF_INET, SOCK_STREAM)
sock.connect((host,port))
sock.send((filename + '\n').encode())

sock.close()

def serverthread(clientsock):
sockfile = clientsock.makefile('r')
filename = sockfile.readline()[:-1]
try:
print filename

except:
print('Error recieving or writing: ', filename)
clientsock.close()

def server(host, port):
serversock = socket(AF_INET, SOCK_STREAM)
serversock.bind((host,port))
serversock.listen(5)
while True:
clientsock, clientaddr = serversock.accept()
print('Connection made');
thread.start_new_thread(serverthread, (clientsock,))

任何帮助或建议,将不胜感激。谢谢阅读。

最佳答案

我的第一个猜测就是,当客户端尝试连接时,服务器线程还没有真正启动。客户端正在连接,但是没有监听。创建线程并将控制权转移到该线程需要花费大量时间。您可以在客户端连接之前休眠,或者重试几次,或者在打开套接字时对它有所幻想并收到服务器线程信号。

关于python - 当客户端和服务器在同一进程上运行时,为什么连接会被拒绝?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6083999/

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