博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多线程并发简单版
阅读量:7099 次
发布时间:2019-06-28

本文共 1640 字,大约阅读时间需要 5 分钟。

server-------------------

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time    : 2018/6/19 9:33
# @File    : server1.py
# from socket import *
# from threading import Thread
#
#
# def communicate(conn):
#     while True:
#         try:
#             data = conn.recv(1024)
#             if not data:break
#             conn.send(data.upper())
#         except ConnectionResetError:
#             break
#     conn.close()
#
#
# def server(ip, port):
#     server = socket(AF_INET, SOCK_STREAM)
#     server.bind((ip, port))
#     server.listen(5)
#
#     while True:
#         conn, addr = server.accept()  # 建立连接
#         t = Thread(target=communicate, args=(conn, ))
#         t.start()
#
#     server.close()
#
#
# if __name__ == '__main__':
#     server('127.0.0.1', 8080)
# 基于线程池实现
from socket import *
from concurrent.futures import ThreadPoolExecutor
def communicate(conn):
    while True:
        try:
            data = conn.recv(1024)
            if not data:break
            conn.send(data.upper())
        except ConnectionResetError:
            break
    conn.close()
def server(ip, port):
    server = socket(AF_INET, SOCK_STREAM)
    server.bind((ip, port))
    server.listen(5)
    while True:
        conn, addr = server.accept()  # 建立连接
        pool.submit(communicate, conn)
    server.close()
if __name__ == '__main__':
    pool = ThreadPoolExecutor(2)  # 不要设置超过机器范围,2个不支持3个
    server('127.0.0.1', 8080)
client--------------------
# 可以右键启动多个
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time    : 2018/6/19 9:33
# @File    : client1.py
# 右键运行一次就是一个进程
from socket import *
client = socket(AF_INET, SOCK_STREAM)
client.connect(('127.0.0.1', 8080))
while True:
    msg = input('>>>:').strip()
    if not msg:continue
    client.send(msg.encode('utf-8'))
    data = client.recv(1024)
    print(data.decode('utf-8'))
client.close()
   

转载于:https://www.cnblogs.com/fmgao-technology/p/9197241.html

你可能感兴趣的文章
黑客发布iOS 4.1永久越狱程序
查看>>
T-Mobile证实数据泄露 但客户暂无风险
查看>>
使用 MEF 公开 Silverlight“.NET研究” MVVM 应用程序中的接口
查看>>
Random Sequence 2011ACM福州赛区网络赛
查看>>
node.js 文件操作
查看>>
异常不可用于逻辑处理
查看>>
小米手机如期而至
查看>>
STM32 RCC实验 MCO脚输出时钟波形
查看>>
Flash 最小化,帧速变慢的问题
查看>>
java对redis的基本操作(一)
查看>>
基因组印记
查看>>
34个漂亮的应用程序后台管理界面(系列三)
查看>>
double free or corruption (!prev): 0x080644c8 ***
查看>>
在VMware上搭建iPhone开发环境(转)
查看>>
MongoCola使用教程 1 - MongoDB的基本操作和聚合功能
查看>>
2012年3月份30个优秀的jquery插件集合 功能强大
查看>>
公共的Json操作C#类
查看>>
WebService如何调试及测试工具
查看>>
HDU-2091 水题
查看>>
【转】条件编译#ifdef的妙用详解_透彻
查看>>