我了解到,在客户端服务器网络中,有多个客户端进程在不同的系统中运行,并且在服务器计算机中运行一个服务器进程。当服务器从客户端收到任何连接时,它会为它创建一个新线程并处理客户端。
我正在开发一个项目,其中客户端创建多个线程,服务器也为每个客户端线程创建多个线程。
我无法在这里发布我的项目的源代码,但是我已经在python中编写了一个小型客户端服务器程序,每当我们按任意键时,客户端就会创建一个新线程,服务器应该为它创建一个新线程。
我收到了一些错误,所以我需要帮助。
服务器的代码是
import socket
from threading import Thread
host="10.0.0.5"
port=7000
s=socket.socket()
s.bind((host, port))
s.listen(10)
def server(c, addr, i):
print("connection successful with "+str(addr))
while True:
msg=c.recv(1024)
if not msg:
break
decoded_msg=msg.decode("utf-8")
print("CLIENT "+str(i)+" : "+decoded_msg+"\n")
def main():
i=0
while i<=10:
c, addr=s.accept()
print("triying to recieve a connection")
t=Thread(target=server, args=(c, addr, i))
t.start()
i+=1
main()
c.close()
客户端的代码是
import socket
from threading import Thread
import time
host="10.0.0.5"
port=7000
s=socket.socket()
def client(i):
s.connect((host, port))
while True:
msg="from client "+str(i)
encoded_msg=bytes(msg, "utf-8")
s.send(encoded_msg)
time.sleep(1)
def main():
i=0
while True:
print("connection request sent")
Thread(target=client, args=(i, )).start()
i+=1
if input()=='q':
break
main()
s.close()