三、实现TCP服务器并发

实现TCP服务器并发

服务器

import socket
from multiprocessing import Process
from threading import Thread

# 1.创建一个TCP socket链接
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 2.绑定本地IP和端口,方便客户端访问
s.bind(('127.0.0.1', 8000))

# 3.设置客户端访问的缓冲区
s.listen(128)


# 通信循环
def talk(a):
    while True:
        try:
            client_data = a.recv(1024).decode('utf8')
            if len(client_data) == 0:
                break
            print(client_data)
            a.send(client_data.upper().encode('utf8'))
        except ConnectionError as e:
            print(e)
            break
    a.close()


while True:
    a, b = s.accept()
    print(a, b)
    t = Thread(target=talk, args=(a,))
    t.start()

客户端

import socket

#1.创建一个TCP socket链接
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

#2.指定对端IP地址和端口号
s.connect(('127.0.0.1',8000))

while True:
    s.send('hello'.encode('utf8'))
    server_data = s.recv(1024).decode('utf8')
    print(server_data)
posted @ 2021-06-03 19:15  zzwYYYYYY  阅读(113)  评论(0)    收藏  举报