第八章 socket网络编程(6):加上连接循环(代码完善)

继续上一篇,我们来继续完善程序

到现在为止,我们停掉客户端了,服务端也会一起结束。 但是考虑一下,这并算不上服务端,因为只能服务一个客户端 所以我们需要能接受多个客户端的访问(暂时我们不研究并发编程,就让我们先能一个一个处理)

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