频道栏目
首页 > 资讯 > Python > 正文

Python网络编程报错TypeError: a bytes-like object is required, not 'str' 的解决办法

18-07-16        来源:[db:作者]  
收藏   我要投稿

客户端报错:TypeError: must be str, not bytes

服务端报错:TypeError: a bytes-like object is required, not 'str'

报错源码:

'''
Created on 2018年7月14日

@author: dtjy
'''
import socket

HOST='127.0.0.1'
PORT=8080

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

s.connect((HOST,PORT))

print('connect success')
data = s.recv(1024)
print('receive'+data)
s.close()
'''
Created on 2018年7月14日

@author: dtjy
'''
import socket
import datetime

HOST='0.0.0.0'
PORT=8080

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind((HOST,PORT))
s.listen(1)

while True:
 conn,addr=s.accept()
 print('Client %s connected!' %str(addr))
 dt = datetime.datetime.now()
 message = 'Current time is'+str(dt)
 conn.send(message)
 print("send:"+message)
 conn.close
  

服务端代码

conn.send(message)

参数传入的是一个字符串。我使用的python版本是3.6,但是使用的教程版本是2.7,两个版本在宰割参数传入得类型有所不同

3.6的版本传入的是bytes字节,所以只需要将参数进行转化就行了:

conn.send(message.encode())

同时在客户端接收到的数据是bytes字节码,要先转换为字符串:

print('receive'+data.decode())

这样就行了

相关TAG标签
上一篇:Windows系统下安装Redis以及可视化工具的实例教程
下一篇:几种不同的微服务数据库架构设计方案
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站