python socket 如何接收tcp/ip byte 格式的数据?
问题描述
python socket 如何接收tcp/ip byte 格式的数据?下面的只能接收明文
import socketserver # 导入socketserver模块class MyServer(socketserver.BaseRequestHandler): # 创建一个类,继承自socketserver模块下的BaseRequestHandler类 def handle(self): # 要想实现并发效果必须重写父类中的handler方法,在此方法中实现服务端的逻辑代码(不用再写连接准备,包括bind()、listen()、accept()方法)while 1: conn = self.request addr = self.client_address # 上面两行代码,等于 conn,addr = socket.accept(),只不过在socketserver模块中已经替我们包装好了,还替我们包装了包括bind()、listen()、accept()方法 while 1:accept_data = conn.recv(1024)#accept_data = int(’0x4’,16)print(accept_data)if accept_data == 'byebye': breaksend_data = bytes(input('>>>>>'))conn.sendall(send_data) conn.close()if __name__ == ’__main__’: sever = socketserver.ThreadingTCPServer(('192.168.0.110', 10001), MyServer) # 传入 端口地址 和 我们新建的继承自socketserver模块下的BaseRequestHandler类 实例化对象 sever.serve_forever() # 通过调用对象的serve_forever()方法来激活服务端
问题解答
回答1:如果你的python3, conn.recv() 返回数据就是 bytes,decode一下就是str类型。或者使用bytes比较。
if accept_data == b'byebye': break
处理 accept_date数据的时候,decode即可,如果服务器返回的utf-8编码的,只需要accep_data.decode(’utf-8’)
相关文章:
1. android - weex 项目createInstanceReferenceError: Vue is not defined2. android - 哪位大神知道java后台的api接口的对象传到前端后输入日期报错,是什么情况?求大神指点3. pdo 写入到数据库的内容为中文的时候写入乱码4. PHPExcel表格导入数据库怎么导入5. javascript - 如图,百度首页,查看源代码为什么什么都没有?6. vue2.0+webpack 如何使用bootstrap?7. PHP类封装的插入数据,总是插入不成功,返回false;8. mac连接阿里云docker集群,已经卡了2天了,求问?9. python - 小白django提交数据后,没有存储到数据库(查阅资料并没有发现问题)10. javascript - 前端开发框架express,在他的模板引擎下怎么给按钮添加绑定事件?
