Python 3.5 Socket TypeError: a bytes-like object is required, not ‘str’ 错误提示

代码都是照着书上抄的,不过书是《Python核心编程 第二版》,运行环境是python3,在运行代码时出现 Socket TypeError: a bytes-like object is required, not ‘str’ 错误提示 ,经过搜索才了解到字符串有两种类型。一是unicode string(通用字符串),一般用引号包含,例如”today is a Monday”;二是 raw bytes strings(原始字符串),一般是b”today is a “,字符串前多了一个b。在socket中,传送的是默认是原始字符川,所以发送前应进行.encode()编码操作,变成原始字符串。接收到以后可以.decode()解码操作显示。

总结,unicode string可以通过.encode()方法来转换为原始字符串。原始字符串可以通过.decode()方法转化为通用字符串。socket默认传输原始字符串。

继续阅读“Python 3.5 Socket TypeError: a bytes-like object is required, not ‘str’ 错误提示”