socket 介绍

思考

  • 不同电脑上的进程之间如何通信?
    首先通过 IP 地址找到网络中对应的电脑,然后通过传输协议和端口号来确定这个进程(运行起来
    的软件),那么数据如何传输需要使用 socket 来完成,也就是进程之间通信使用 socket.

  • 那问题又来了,什么是进程? 什么是进程间通信?
    所谓进程指的是:运行的程序或者软件称之为进程(过几天更新多任务编程时进行详细讲解)
    所谓进程间通信指的是:运行的程序之间的数据共享

  • 什么是 socket?
    socket(简称 套接字) 是进程间通信一个工具,它能实现把数据从一方传输到另外一方,完成不同电脑上进程之间的通信, 它好比数据的搬运工。

socket 使用场景

不夸张来说,只要跟网络相关的应用程序或者软件都使用到了socket, 比如:

数据编码和解码

str->bytes:encode编码
bytes->str:decode解码

字符串通过编码成为字节码,字节码通过解码成为字符串。

>>> text = '我是文本'
>>> text
'我是文本'
>>> print(text)
我是文本
>>> bytesText = text.encode()
>>> bytesText
b'\xe6\x88\x91\xe6\x98\xaf\xe6\x96\x87\xe6\x9c\xac'
>>> print(bytesText)
b'\xe6\x88\x91\xe6\x98\xaf\xe6\x96\x87\xe6\x9c\xac'
>>> type(text)
<class 'str'>
>>> type(bytesText)
<class 'bytes'>
>>> textDecode = bytesText.decode()
>>> textDecode
'我是文本'
>>> print(textDecode)
我是文本

其中decode()与encode()方法可以接受参数,其声明分别为:

bytes.decode(encoding="utf-8", errors="strict")
str.encode(encoding="utf-8", errors="strict")

其中的encoding是指在解码编码过程中使用的编码格式,errors是指错误的处理方案。

socket的bind方法可以给程序的套接字绑定端口号

注意:

strict:表示严格按照指定编解码方式进行编码和解码,如果编解码不成功则抛出异常
ignore:表示忽略编解码不成功的字符,如果编解码不成功程序不会抛出异常
口诀:用什么编码就用什么解码

socket介绍--数据的编码与解码相关推荐

  1. python json数据格式数组内元素递增赋值_利用Python实现JSON格式数据的编码与解码操作...

    导读 JSON (全称:JavaScript Object Notation )是一种轻量级的数据交换格式,所谓的轻量级,是与 XML 数据结构相比而言的,在描述相同的数据下,JSON 所需的字符比X ...

  2. python网络编程编码和解码_python编程中的编码和解码问题

    在编程中,对编码和解码感到困惑,经常会莫名其妙的出现一些问题,根据需要解决的问题,有以下几种情形: 1.在python2.7以下版本中,unicode和string的转换问题.对于一个变量v,是不是因 ...

  3. php解码html,PHP:HTML属性编码/ JavaScript解码

    为 HTML属性上下文编码不受信任的数据的正确方法是什么?例如: 我通常使用htmlentities()或htmlspecialchars()来执行此操作: 但是,我最近遇到了一个问题,当我需要传递的 ...

  4. kali base64 编码和解码

    为了对标准输入/输出或任何文件内容进行编码或解码,Linux 使用 base64 编码和解码系统.对数据进行编码和解码,使数据传输和存储过程更容易.编码和解码不同于加密和解密.通过解码可以很容易地揭示 ...

  5. 【Android RTMP】音频数据采集编码 ( AAC 音频格式解析 | FLV 音频数据标签解析 | AAC 音频数据标签头 | 音频解码配置信息 )

    文章目录 安卓直播推流专栏博客总结 一. AAC 音频格式解析 二. FLV 音频数据标签解析 1. 分析 FLV 格式中的 AAC 音频格式数据 2. AAC 音频特殊配置 3. AAC 音频数据标 ...

  6. 图片二进制编码_python3从零学习-5.7.4、quopri编码与解码经过MIME转码打印数据

    源代码: Lib/quopri.py 此模块会执行转换后可打印的传输编码与解码. 转换后可打印的编码格式被设计用于只包含相对较少的不可打印字符的数据:如果存在大量这样的字符,通过 base64 模块所 ...

  7. day-06 is ==小数据池编码解码

    ==      比较      比较的是两边的值     is      比较      比较的是内存地址   判断两个东西指向的是不是同一个对象          取内存地址 id() 小数据池   ...

  8. 用js实现基于Base64的数据或者图片的编码与解码

    背景: 公司需要对接第三方的合作商,需要跳转至对方的网站,使用get请求访问对方链接直接跳转,get请求会直接暴露登陆的用户名和密码,我们采用base64编码,对用户信息进行保护. 常用的base64 ...

  9. python常用数据类型转换(str、list、tuple、set、dict)方法编码与解码字符串格式化处理时间格式化

    python常用数据类型str.list.tuple.set.dict的常用方法汇总&编码与解码 一.字符串(str)的常用方法 1.1 字符串的格式化 1.1.1 %s.%d.%f进行占位 ...

最新文章

  1. 60篇论文入选,两度夺魁,“史上最难ECCV”商汤再攀高峰
  2. 使用python创建自己的第一个神经网络模型吧!
  3. java获取UUID与UUID的校验
  4. 结对编程:黄金点小游戏
  5. datagrip mysql乱码_DataGrip和IDEA无法连接上Mysql问题解决方法详解
  6. Json和object相互转化,排除json中多余的字段
  7. JAVA的类名.this
  8. 二维数组按指定的键值排序
  9. 如何商业智能平台BI的成本
  10. 面试被问离职原因该怎么回答?
  11. Mysql数据库repair table 修复表
  12. 常见SOC启动流程分析
  13. 全球最牛B的下载神器IDM,让你体验飞一般的感觉
  14. 传智播客网络营销课程大升级,改变从“薪”开始
  15. vue + iview + select + 本地搜索或远程搜索
  16. matlab feko,孔令兵_MATLAB在FEKO后处理中的应用.pdf
  17. 水果店水果打理方法有哪些
  18. Keycloak使用说明(Java Spring Boot)
  19. tomcat高级操作
  20. 途家与日本白马洽谈新合作 推介会分享民宿线上运营经验

热门文章

  1. Redis一打开一闪而过,没有出现主界面的解决办法及原因
  2. 【Java基础】语法基础
  3. js如何实现侧边广告_如何用稳定器轻松实现低成本的商业级广告片制作?
  4. 5G NR 网络切片是什么意思
  5. 嵌入式学习(四)——串口
  6. 存款机不认的新版人民币
  7. 微信小程序 申请第三方平台流程
  8. 汇编语言更象是野球拳,哈哈……
  9. GPIO端口初始化设置,STM32F103点亮LED流水灯过程
  10. 网易极客战记-KITHGARD地牢--健忘的宝石匠