socket介绍--数据的编码与解码

socket 介绍

思考

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

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

  • 什么是 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:表示忽略编解码不成功的字符,如果编解码不成功程序不会抛出异常
口诀:用什么编码就用什么解码

猜你喜欢

转载自blog.csdn.net/qq_41333582/article/details/82143575