栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

11.9网络编程课堂笔记

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

11.9网络编程课堂笔记

Network Data and Network Errors 基于TCP/IP的简单协议

字典、回音、返回日期等等

字节与字符串

.encode()
.decode()
编码格式:
UTF-16:一个中文字符占用空间变成2字节,再加2字节的头部
UTF-32:一个中文字符占用空间变成4字节,再加4字节的头部
UFF-8:长度在UTF-16和UTF-32之间,一个中文字符占用3字节(存疑)

封帧和引用

在建立TCP连接的基础上,封帧的六种情况:
1.单方向的传输即可的情况,只要一方发送,另一方将发送的属性(RD?)设置为关闭(READ属性和WRITE属性),就是“半开状态”
优点:发送大量信息时不会导致死锁。
导致死锁的例子:Client端向Server端发送大文件,S端将字符转化为大写同时发送到C端。C 端还没有发送完,就接收到S端的发送回来的内容,但是C端还在发送,S端的回传只能保存在缓冲区,直到缓冲区满,S端不能发送,再等到S端缓冲区满,C端也停止传输,导致死锁。

#Server端
sc.shutdown(socket.SHUT_WR) #禁止发送
#Client端
sc.shutdown(socket.SHUT_RD) #禁止接收

2.两个方向都有:代码分块,完成一部分进行另一部分
3.发送简短的定长信息:从哪儿开始读,读到哪儿结束
4.用特殊符号作为定界符:例如rn
5.每个信息都预先说明长度
6.情况3和5组合。length作为定长信息,然后length作为头,后续跟data,读取length长度的信息。

pickle

使用点号’.'作为分界符,作为打包结束

无关内容:BytesIO:将字符串信息以文本的方式进行保存。可以让文本不保存在内存中,而是保存在外存中。

压缩

zlib包
compress和decompressobj可以进行压缩和解压的处理

网络异常

使用try…except。可用raise对自定义异常进行抛出

OSError

socket所有阶段都有可能抛出。包含范围最大

socket.gaierror

无法找到提供的名称或服务器,gai就是get address information

socket.timeout

socket超时

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/458122.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号