码迷,mamicode.com
首页 > 其他好文 > 详细

位解包运算

时间:2018-11-25 17:59:18      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:coding   byte   code   end   就是   个数   import   size   int   

# info=conn.recv(8096)
# payload_len=info[1] &127
# ####################拿到这payload的值
# if payload_len==126:
# extend_payload_len==info[2:4]
# ##################这个是头部信息,这个会往后面多占16位,就是前面的2个字节加上后面加上的4个字节,头部信息就是4个字节
# mask=info[4:8]
# decodeed=info[8:]
# ###########这个decodeed是数据信息
# elif payload_len ==127:
# ##########注明一下,这个投币想你想,之前是固占2个字节的,如果是127的话,那么这个就往后面占10个字节(这个是头部信息),mask_key这个是占4个字节
# extend_payload_len==info[2:10]
# mask=info[10:14]
# decodeed=info[14:]
# # 这个就是数据了
#
# else:
# extend_payload_len=None
# mask=info[2:6]
# decodeed=info[6:]
#
# bytes_list=bytearray()
#
# for i in range(len(decodeed)):
# chunk=decodeed[i] ^ mask[i%4]
# ############这个amsk是进行解密的,mask_key对数据发送过来的,后面的数据是加密的, 而amsk_key是进行解密的,解密过程是往这个数据一个一个号字节的
# ##拿,而这个解密是一个个的解密
# bytes_list.append(chunk)
#
# body=str(bytes_list,encoding=‘utf-8‘)
#
# print(body)
#
#
#



####################################注明一下,OX这个是16进制的

##################加一个消息头,就可以判断这个消息什么时候结束了
def send_msg(conn,msg_bytes):
import struct
token=b‘\81‘
length=len(msg_bytes)
if length<126:
################3注明一下 ,如果你发的数据小于126的话,就以下面的B这种方式打包,下面的代表了规则
token+=struct.pack(‘B‘,length)
elif length<=0XFFFF:
token+=struct.pack(‘!BH‘,126,length)
else:
token+=struct.pack(‘!BQ‘,127,length)

msg=token+msg_bytes

conn.send(msg)

return True

位解包运算

标签:coding   byte   code   end   就是   个数   import   size   int   

原文地址:https://www.cnblogs.com/yunxintryyoubest/p/10016102.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!