循环通信

循环通信


##服务端
import socket
"""
服务端的要求:
1.24小时不间断提供服务
2.有固定的ip和port(端口)
3.支持高并发,也就是能同时服务很多个用户

并行:同一时间点上多个任务同时运行,真正意义上的同时执行
并发:同一时间段内,多个任务同时执行,只要看起来像同时进行就可以称之为并发



现在我们要求能持续不断的发送消息,就像QQ对话一样,还要能将出错的异常捕获:
"""
server = socket.socket()
server.bind(('127.0.0.1',8080))
server.listen(5)


conn, addr = server.accept()
while True:
    try:
        data = conn.recv(1024)  # b''
        if len(data) == 0:break  # 针对mac linux系统而言
        print(data.decode('utf-8'))
        info = input('=====>').strip()
        conn.send(info.encode('utf-8'))

    except ConnectionResetError:
        break

conn.close()
server.close()

##客户端

import socket


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

while True:
    msg = input('please input your msg>>>:').encode('utf-8')
    if len(msg) == 0:continue
    if msg == 'q'.encode('utf-8')or msg == 'Q'.encode('utf-8'):
        break
    client.send(msg)
    data = client.recv(1024)

    print('====>',data.decode('utf-8'))
client.close()


posted @ 2019-06-03 16:25  同济小孙  阅读(262)  评论(0编辑  收藏  举报