在学习《Python web开发学习实录》时,

例11-1:

# !/usr/bin/env python
# coding=utf-8
import socket
sock = socket.socket()
sock.bind(('localhost', 8080))
sock.listen(5)
while True:
connection,address = sock.accept()
try:
connection.settimeout(5)
buf = connection.recv(1024)
if buf == '1':
connection.send("Welcome to server!")
else:
connection.send("please go out!")
except socket.timeout:
print('time out')
connection.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

编写web服务器报TypeError: a bytes-like object is required, not ‘str’错误,后来查到是因为python2和python3的版本有些差异,而python3最重要的新特性也是对文本和二进制数据做了更清晰的区分。文本用unicode编码,为str类型,二进制数据则为bytes类型。

python有两种类型转换的函数encode(),decode() 

encode(编码),可以将str类型编码为bytes。 

decode(译码),可以将bytes类型转换为str类型。

知道了上面两点要解决这个错误也就不麻烦了, 

ypeError: a bytes-like object is required, not ‘str’ 

错误原因是TypeError,因为要求bytes类型却给了str类型,那么只需要在send函数参数中加上encode()方法就行。 

connection.send("please Go out!".encode())

最新文章

  1. 调度系统任务创建---Git部署项目(一)
  2. ios中tableSection的颜色
  3. html5压缩图片并上传
  4. HDU 5682/BestCoder Round #83 1003 zxa and leaf 二分+树
  5. <五> jQuery 效果
  6. BZOJ 1006 神奇的国度
  7. jquery验证表单中的单选与多选
  8. NYOJ-102 次方求模
  9. JavaScript基础——变量、语句、注释
  10. android+eclipse+mysql+servlet(Android与mysql建立链接)
  11. 阿里云学习之IOT物联网套件(客户端与服务端的后台数据传输)
  12. Centos 7 安装 ifconfig 管理命令
  13. (转载)Python之道1-环境搭建与pycharm的配置django安装及MySQL数据库配置
  14. window 服务器的Tomcat 控制台日志保存到日志文件.
  15. VMware vCenter Server 6.5配置群集功能
  16. python - class内置方法 doc/module/del(析构方法)/cal 方法
  17. Visual Studio编译时报错“函数名:重定义;不同的基类型”
  18. vuesheng生命周期
  19. erlang 安装
  20. 转: linux进程地址图解

热门文章

  1. AD采集问题
  2. idea 在tomcat启动的时候发现控制台输出的是乱码
  3. 如何在安装node\npm\cnpm
  4. java 数组(一)
  5. 安装MongoDB报错
  6. 【SQL】where 后不可以接聚合函数,都哪些是聚合函数?
  7. (4.28)for xml path 在合并拆分上的作用演示
  8. linux 查看磁盘读写:iostat
  9. bat处理打开关闭exe
  10. 使用python实现日志功能