天天看點

TCP服務端實作并發

服務端

import socket
from threading import Thread

# 生成服務端
server = socket.socket()
# 确定服務端位址
server.bind(('127.0.0.1', 8889))
# 設定半連接配接池
server.listen(5)


def talk(sock):
    while True:
        try:
            msg = sock.recv(1024)
            if not msg: break
            print(msg.decode('utf8'))
            sock.send(msg + b'haha')
        except ConnectionResetError as e:
            print(e)
            break
    sock.close()


while True:
    sock, address = server.accept()
    print(address)
    # 開設多線程
    t = Thread(target=talk, args=(sock,))
    t.start()
           

用戶端

import socket

client = socket.socket()
client.connect(('127.0.0.1', 8889))

while True:
    msg = input('請輸入您要發送的資訊(按q退出)>>>:').strip()
    if not msg: continue
    if msg.lower() == 'q': break
    client.send(msg.encode('utf8'))
    data = client.recv(1024)
    print(data.decode('utf8'))
client.close()
           
TCP服務端實作并發

繼續閱讀