try:import uioimport uerrnoimport websocketexcept ImportError:print("SKIP")raise SystemExit# put raw data in the stream and do a websocket readdef ws_read(msg, sz):ws = websocket.websocket(uio.BytesIO(msg))return ws.read(sz)# do a websocket write and then return the raw data from the streamdef ws_write(msg, sz):s = uio.BytesIO()ws = websocket.websocket(s)ws.write(msg)s.seek(0)return s.read(sz)# basic frameprint(ws_read(b"\x81\x04ping", 4))print(ws_read(b"\x80\x04ping", 4)) # FRAME_CONTprint(ws_write(b"pong", 6))# split frames are not supported# print(ws_read(b"\x01\x04ping", 4))# extended payloadsprint(ws_read(b'\x81~\x00\x80' + b'ping' * 32, 128))print(ws_write(b"pong" * 32, 132))# mask (returned data will be 'mask' ^ 'mask')print(ws_read(b"\x81\x84maskmask", 4))# close control frames = uio.BytesIO(b'\x88\x00') # FRAME_CLOSEws = websocket.websocket(s)print(ws.read(1))s.seek(2)print(s.read(4))# misc control framesprint(ws_read(b"\x89\x00\x81\x04ping", 4)) # FRAME_PINGprint(ws_read(b"\x8a\x00\x81\x04pong", 4)) # FRAME_PONG# close methodws = websocket.websocket(uio.BytesIO())ws.close()# ioctlws = websocket.websocket(uio.BytesIO())print(ws.ioctl(8)) # GET_DATA_OPTSprint(ws.ioctl(9, 2)) # SET_DATA_OPTSprint(ws.ioctl(9))try:ws.ioctl(-1)except OSError as e:print("ioctl: EINVAL:", e.args[0] == uerrno.EINVAL)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。