python-线程池并发服务器


server


# 使用线程池来实现并发服务器

import socket
from multiprocessing.dummy import Pool


def worker(conn):
    while True:
        recv_data = conn.recv(1000)
        if  not recv_data:
            break
        print("客户端{}发送了{}".format(conn, recv_data.decode()))
        conn.send(recv_data)
    conn.close()


if __name__ == '__main__':
    server = socket.socket()
    server.bind(('127.0.0.1', 8888))
    server.listen(1000)
    pool = Pool(3)
    while True:
        conn, addr = server.accept()
        print("客户端{}连接成功".format(addr))
        pool.apply_async(func=worker, args=(conn,))

client

import socket


c = socket.socket()

c.connect(('127.0.0.1',8888))

while True:
    msg = input('>>>')
    if msg:
        c.send(msg.encode())   # 只能发送 bytes 类型的数据   encode将中文的变成byte的
        print(c.recv(1024))
    else:
        break

c.close()


文章作者: 剑胆琴心
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 剑胆琴心 !
评论
 上一篇
python-自带的线程池和进程池 python-自带的线程池和进程池
# from multiprocessing import Pool # 进程池 from multiprocessing.dummy import Pool #线程池 from multiprocessing.pool import
2020-02-24
下一篇 
python-简单的线程池的实现 python-简单的线程池的实现
# 多进程服务器 创建 销毁 # 通过提前创建好线程 当任务来了 就分配线程去执行 """ 主线程: 相当于生产者,只管向线程池提交任务。 并不关心线程池是如何执行任务的。
2020-02-24
  目录