循环通信
##服务端
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()