第64天python学习socket收发消息原理
socket收发消息原理
内存:分为内核态和用户态。应用程序运行都是进过内存实现的
三层结构:应用软件 os 硬件
操作系统代码一直存在内存内核态中 应用程序用户态内存
备注:数据收发取值是从缓存里面取值的,内存一部分是内核态内容,一部分是用户态内容
服务器:
import socket ip_port=('127.0.0.1',8080)#电话卡 s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) #买手机 s.bind(ip_port) #手机插卡 s.listen(5) #手机待机,监听最多五个 while True: #新增接收链接循环,可以不停的接电话 conn,addr=s.accept() #手机接电话 print('接到来自%s的电话' %addr[0]) while True: #新增通信循环,可以不断的通信,收发消息 msg=conn.recv(BUFSIZE) #听消息,听话 # if len(msg) == 0:break #如果不加,那么正在链接的客户端突然断开,recv便不再阻塞,死循环发生 print(msg,type(msg)) conn.send(msg.upper()) #发消息,说话 conn.close() #挂电话 s.close() #手机关机
客户端:
import socket ip_port=('127.0.0.1',8081) s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect_ex(ip_port) #拨电话 while True: #新增通信循环,客户端可以不断发收消息 msg=input('>>: ').strip() if len(msg) == 0:continue s.send(msg.encode('utf-8')) #发消息,说话(只能发送字节类型) feedback=s.recv(BUFSIZE) #收消息,听话 print(feedback.decode('utf-8')) s.close() #挂电话
posted on 2019-11-14 22:14 坚持是多么伟大的事情 阅读(377) 评论(0) 编辑 收藏 举报