ソケットネットワークプログラミングの章VIII(6):プラス接続循環(コード補完)

前が続く、我々はプログラムを改善し続けます

今まで、私たちはクライアントを停止して、サーバーが一緒に終了します。しかし、我々は複数のクライアントへのアクセスを受け入れることができるようにする必要がありますので、それは本当に唯一のクライアントとして機能することができ、サービスを終了していない、それについて考える(一時的に、我々は、並行プログラミングを勉強して私たちの最初の契約をさせないことができA)

server.py

import socket

phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  
phone.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
phone.bind(('127.0.0.1',8080))  
phone.listen(5)  # 挂起的客户端最多有5个

print('starting...')  

while True:  # 循环连接建立以及处理的部分
    conn, client_addr = phone.accept()  
    
    #5 收,发消息(传数据)
    while True:
        try:
            data = conn.recv(1024)
            if not data : break
            print('客户端的数据',data)
            conn.send(data.upper())
        except ConnectionResetError:
            break
        
    conn.close()
     
phone.close()  

client.py

import socket

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

phone.connect(('127.0.0.1',8080))

#3 发,收消息
while True:
    msg = input('>>> : ').strip()
    if not msg : continue
    phone.send(msg.encode('utf-8'))
    data = phone.recv(1024)
    print(data)

phone.close()

おすすめ

転載: www.cnblogs.com/py-xiaoqiang/p/11298983.html