栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

处理以换行符结尾的套接字数据

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

处理以换行符结尾的套接字数据

如果您有要作为行处理的原始输入,则io模块是您的朋友,因为它将在行中进行底层数据包组装。

您可以使用:

class SocketIO(io.RawIObase):    def __init__(self, sock):        self.sock = sock    def read(self, sz=-1):        if (sz == -1): sz=0x7FFFFFFF        return self.sock.recv(sz)    def seekable(self):        return False

它比

endswith('n')
因为如果一个数据包包含嵌入式换行符(
'abncd'
),则io模块将正确处理它而使功能更强大。您的代码可能变为:

def receive_bar_updates(s):    global all_bars    data = ''    buffer_size = 4096    fd = SocketIO(s)  # fd can be used as an input file object    for line in fd:        if should_be_rejected_by_filter(line): continue # do not know what filter does...        if line.startswith("BH") or line.startswith("BC"): symbol = str(line.split(",")[1]) all_bars[symbol].append(line) y = Thread(target=proccess_bars, kwargs={'symbol': symbol}) y.start()


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/419954.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号