学习笔记(08):Python网络编程&并发编程-实现服务端可以对多个客户端提供服务

立即学习:https://edu.csdn.net/course/play/24458/296237?utm_source=blogtoedu

链接循环,一个服务器服务多个客户端,

思路1:服务器一个一个地去服务客服端,等服务完一个客户端后,再去服务下一个客户端。

弊端:不可以一次性去处理所有的客户端请求,一个一个处理处理的速度非常之慢,实际中是使用多线程进行并发编程。并且最多只能监听5个客户端请求,靠phone.listen(5)语句实现

.....

phone.listen(5)

#加上链接循环,使得服务器一直处于运行的状态,一个客户端服务关闭后,就会继续等待接收另一个客户端的请求,如此往复
while True:
  
    res = phone.accept()
    
    conn,client_addr = res
    
    while True:
        #解决客户端单方面关闭而服务器还在等待时会报ConnectionResetError错误的bug
        try:
            data = conn.recv(1024)#1024表示接收的字节最大量是1024bytes
            print('这是客户端的请求数据',data)
   
            conn.send(data.upper())
        except ConnectionResetError:
            break
  
    conn.close()

phone close()

思路2:利用线程并发编程实现

发布了39 篇原创文章 · 获赞 11 · 访问量 426

猜你喜欢

转载自blog.csdn.net/qq_45769063/article/details/104712200