python socket 数据传输小记

来源:互联网 发布:vb程序设计第二版答案 编辑:程序博客网 时间:2024/06/06 04:41

In python 3, bytes strings and unicodestrings are now two different types. Since sockets are not aware of string encodings, they are using raw bytes strings, that have a slightly differentinterface from unicode strings.

So, now, whenever you have a unicode stringthat you need to use as a byte string, you need toencode() it. And whenyou have a byte string, you need to decode it to use it as a regular(python 2.x) string.

Unicode strings are quotes enclosedstrings. Bytes strings are b"" enclosed strings

 

When you use client_socket.send(data),replace it by client_socket.send(data.encode()). When you get datausing data = client_socket.recv(512), replace it by data =client_socket.recv(512).decode()



python作者  在python3 更新时  相对于2做出了改进:

将字符串变成了 Unicode,文件默认编码变成了utf-8 

将str 与 bytes 做出了明确区分,str就是单纯的Unicode格式的字符,bytes就是单纯的二进制(在python2里面 Unicode与str类型,str与bytes类型的关系很混乱,具体想了解,自行百度)