作业_day29

需求:

写一个基于TCP协议套接字,服务端实现接收客户端的连接并发

实现:

1、多进程实现

# 服务端.py
import socket
from multiprocessing import Process

def with_client(conn,addr):
    while True:
        msg = conn.recv(1024).decode('utf-8')
        print(addr)
        print(msg)
        conn.send(msg.upper().encode('utf-8'))

if __name__ == '__main__':  # 解决地址重用
    server = socket.socket()
    server.bind(('127.0.0.1', 10086))  
    server.listen()
    while True:
        conn, addr = server.accept()
        p = Process(target=with_client, args=(conn,addr))
        p.start()
# 客户端.py
import socket

client = socket.socket()
client.connect(('127.0.0.1',10086))
while True:
    msg = input('发送给服务端:').strip()

    client.send(msg.encode('utf-8'))
    data = client.recv(1024).decode('utf-8')
    print(f'服务端:{data}')

2、多线程实现

# 服务端.py
import socket
from threading import Thread

def with_client(conn,addr):
    while True:
        msg = conn.recv(1024).decode('utf-8')
        print(addr)
        print(msg)
        conn.send(msg.upper().encode('utf-8'))


server = socket.socket()
server.bind(('127.0.0.1', 10086))  
server.listen()
while True:
	conn, addr = server.accept()
	t = Thread(target=with_client,args=(conn,addr))
	t.start()        
posted @ 2019-10-22 19:23  W文敏W  阅读(72)  评论(0)    收藏  举报