Python核心编程-TypeError: a bytes-like object is required, not 'str'

在学习《Python核心编程(第3版)》时遇到一个问题,在第二章网络编程中,TCP客户端发送字节给TCP服务器时,显示如下错误:

Python核心编程-TypeError: a bytes-like object is required, not 'str'

百度后发现是没有使用encode()和decode()函数进行字节的处理,简单来说就是:

1.encode()方法将str编码为指定的bytes

2.从网络或磁盘上读取了bytes字节流用decode()方法把bytes变为str。

将第二章中的TCP服务器和TCP客户端代码修改后如下:

Python核心编程-TypeError: a bytes-like object is required, not 'str'Python核心编程-TypeError: a bytes-like object is required, not 'str'

UDP的服务器和客户端也要修改一下:

Python核心编程-TypeError: a bytes-like object is required, not 'str'Python核心编程-TypeError: a bytes-like object is required, not 'str'

现在可以再试一下,记得先开启服务器,再用客户端发送数据字节流。