当前位置: 首页 > news >正文

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

raceback (most recent call last):
  File "D:\pycharmcode\client.py", line 12, in <module>
    tcp_socket.send(send_data)
TypeError: a bytes-like object is required, not 'str'

使用socket进行ubuntu与windows通信时,发送数据时报了以上错误

解决办法是:

这个错误表示在使用 TCP socket 的 send() 方法发送数据时,传入的参数类型错误,需要 bytes-like 对象,而传入的是 str。在 Python 3 中,socket 模块的 send() 和 recv() 方法需要传入和返回 bytes 对象,不能直接处理字符串。解决方法是:1. 使用 str.encode() 方法对字符串进行编码:

python
send_data = "hello server".encode("utf-8")
tcp_socket.send(send_data)

2. 直接使用 bytes 字面量:

python 
send_data = b"hello server"
tcp_socket.send(send_data)

3. 如果服务端是 Python 2,可使用 str,添加编码声明:

python
# -*- coding: utf-8 -*-send_data = "hello server"
tcp_socket.send(send_data)

所以正确的做法是调用 encode() 或者直接使用 bytes 对象,将需要发送的数据统一转换为字节后再发出。同理,在接收数据时需要对 recv() 获取的字节数据解码为字符串

http://www.lryc.cn/news/130031.html

相关文章:

  • 题解 | #1005.List Reshape# 2023杭电暑期多校9
  • 会声会影2023旗舰版电脑端视频剪辑软件
  • 【linux基础(四)】对Linux权限的理解
  • maven项目指定数据源
  • web3:使用Docker-compose方式部署blockscout
  • C++11实用技术(五)泛型编程加载dll接口函数
  • 使用wxPython和PyMuPDF提取PDF页面指定页数的内容的应用程序
  • k8s的pv和pvc创建
  • 记K8S集群工作节点,AnolisOS 8.6部署显卡驱动集成Containerd运行时
  • JavaScript 性能优化
  • 架构演进及常用架构
  • WinCC V7.5 中的C脚本对话框不可见,将编辑窗口移动到可见区域的具体方法
  • 【实战】十一、看板页面及任务组页面开发(二) —— React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(二十四)
  • Vue2.7.14、vuecli@5.0.8 升级 vite@4.4.8
  • LeetCode[面试题04.12]求和路径
  • 骑行运动耳机哪款好?五年骑行爱好者给你分享分享
  • SpringBoot3集成ElasticSearch
  • 详解23种设计模式优缺点以及解决方案
  • Oracle 数据库中删除表空间的详细步骤与示例
  • <kernel>kernel 6.4 笔记
  • 介绍一些编程语言— Perl 语言
  • 原型与继承
  • Flink流批一体计算(14):PyFlink Tabel API之SQL查询
  • JRebel插件扩展-mac版
  • C语言中常见的一些语法概念和功能
  • Python土力学与基础工程计算.PDF-钻探泥浆制备
  • 【机器学习】— 2 图神经网络GNN
  • QT的布局与间隔器介绍
  • 深入浅出Pytorch函数——torch.nn.Linear
  • Vue3.2+TS的defineExpose的应用