PacketFramingStream.py 文件源码

python
阅读 20 收藏 0 点赞 0 评论 0

项目:Playground3 作者: CrimsonVista 项目源码 文件源码
def _checkStreamStart(self):
        if self._startChecked:
            return

        # ok, we've not started yet, either read or write. Start back at prefix start
        # the way "tell()/seek()" is written, we might have gotten moved, so we have to reset
        self._stream.seek(self._prefixStart)
        if self._rawAvailable() < self.PREFIX_SIZE:
            self._dataSize = None
        else:
            magic = self._stream.read(4)
            if magic != self.MAGIC:
                self._fail("Bad Magic Number at Start")
            check = zlib.adler32(magic)
            sizeBytes = self._stream.read(4)
            size = struct.unpack("!I",sizeBytes)[0]
            check = zlib.adler32(sizeBytes, check)

            checkBytes = self._stream.read(4)
            cmpCheck = struct.unpack("!I", checkBytes)[0]
            if cmpCheck != check:
                self._fail("Bad Prefix Checksum")

            self._dataSize = size
            self._startChecked = True
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号