from threading import Thread
import socket

server=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server.bind((\'127.0.0.1\',9999))
server.listen(5)


def action(conn):
    while True:
        data=conn.recv(1024)
        print(data)
        conn.send(data.upper())

if __name__ == \'__main__\':

    while True:
        conn,addr=server.accept()
        p=Thread(target=action,args=(conn,))
        p.start()

多线程实现socket并发(服务端)

import socket

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

s.connect((\'127.0.0.1\',9999))

while True:
    cmd=input(\'>>>:\').strip()
    if len(cmd) ==0:continue
    s.sendall(cmd.encode(\'utf-8\'))
    data=s.recv(1024)
    print(data)

客户端

2、多任务并发(一个接收用户输入,一个将用户输入的内容格式化成大写,一个将格式化后的结果存入文件)

from threading import Thread
msg_l=[]
format_l=[]
def talk():
    while True:
        msg=input(\'>>: \').strip()
        if not msg:continue
        msg_l.append(msg)

def format_msg():
    while True:
        if msg_l:
            res=msg_l.pop()
            format_l.append(res.upper())

def save():
    while True:
        if format_l:
            with open(\'db.txt\',\'a\',encoding=\'utf-8\') as f:
                res=format_l.pop()
                f.write(\'%sn\' %res)

if __name__ == \'__main__\':
    t1=Thread(target=talk)
    t2=Thread(target=format_msg)
    t3=Thread(target=save)
    t1.start()
    t2.start()
    t3.start()

 

收藏 打印