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

Python-将sock.recv转换为字符串

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

Python-将sock.recv转换为字符串

您从中得到的

recv
是一个
bytes
字符串:

从套接字接收数据。返回值是一个字节对象,表示接收到的数据。

在Python
3.x中,要将

bytes
字符串转换为Unipre文本
str
字符串,您必须知道该字符串使用什么字符集编码,因此可以调用
depre
。例如,如果它是UTF-8:

stringdata = data.depre('utf-8')

(在Python 2.x中,

bytes
它和一样
str
,因此您已经 有了
一个字符串。但是,如果要获取Unipre文本
unipre
字符串,则与3.x中的相同。)

人们经常使用的原因

struct
是数据不仅是8位或Unipre文本,而是其他某种格式。例如,您可以将每个消息作为“
netstring
”发送:长度(作为ASCII数字字符串),后跟一个
:
分隔符,然后
length
是UTF-8字节,然后是一个
,
-如
b"3:Abc,"
。(格式上有一些变体,但这是伯恩斯坦标准的网络字符串。)

人们使用netstrings或其他类似技术的原因是,在使用TCP时需要某种分隔消息的方法。每个都

recv
可以给您对方传递的一半
send
,或者可以让您获得3分
send
和4分之一。因此,您必须积累一个
recv
数据缓冲区,然后再将消息拉出。而且,您需要某种方法来告知一条消息何时结束,下一条消息何时开始。如果您只是发送没有任何换行符的纯文本消息,则可以仅使用换行符作为分隔符。否则,您将不得不提出其他建议-
可能是网串,或者
用作分隔符,或者使用换行符作为分隔符,但在数据中转义了实际的换行符,或者使用某些自定界的结构化格式(例如JSON)。



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

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

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