网络编程笔记
无限非概率驱动
这个作者很懒,什么都没留下…
展开
-
12.27 网络编程作业笔记
单线程服务器、多线程服务器、异步服务器,三种架构实现大文件的发送和接收。 现在有单线程服务器的echo功能完成,试试看先把文件的读写功能做出来 python文件读写 生成发送的文件(用来测试文件写入功能) path = './send/file2.txt' write_file = open(path,'w') write_string = '' for i in range(10000): write_string = write_string + str(i) if(i % 10 == 0):原创 2022-01-01 09:52:37 · 89 阅读 · 0 评论 -
11.23 网络编程课程课堂笔记
异步服务器 对比单进程和多进程服务器: 多进程服务器,如果一个进程/线程被阻塞,对应的进程/线程不能很快的进行切换,对应的内存被占用,如果在多个进程之间进行切换也要付出很大的切换上下文的开销 异步思想:一个行为如果在过程中间阻塞了,可以先去处理其他行为 异步基本原理:使用单线程的思路实现相关代码, 切换上下文开销:共享内存,文件描述符 import select ...... def all_events_forever(poll_object): while True: for fd,event i原创 2021-11-23 20:05:58 · 328 阅读 · 0 评论 -
11.16网络编程课程和实验
服务器部署 关键问题: 1.正确处理请求并发送合适的响应的代码 2.服务器进程启动后如何维护 针对问题1进行分析 通常的三种网络服务器的类型 1.单进程单线程服务:同一时刻只能为一个客户提供服务 2.多进程多线程服务 3.异步服务,非阻塞 负载均衡:请求DNS时,负责分流到提供相同功能的不同ip地址 异步服务:关键词:poll,epoll,事件,生成器,yield 作用:一个线程可以处理多个请求,不会因为为一个用户提供服务而阻塞等待 while True: for rd,event in poll_obj原创 2021-11-16 20:05:18 · 454 阅读 · 0 评论 -
11.15 UDP实现网络聊天室(未完成)
1.UDP是无连接的,但是不代表客户端的socket每次发送之后都要销毁!一开始只有服务端的socket在一直使用,客户端的socket每次创建后发送一次就销毁,以至于无法判断用户的身份。socket不重建,用户的ip地址和端口号就不会改变,可以通过记录ip地址和端口号来记录用户的身份。 2.UDP的服务端一直循环等待接收消息,客户端一直等待用户输入 。 3.由于UDP的无连接特性,服务端和客户端是相对的,服务端和客户端都需要监听。那么客户端可能需要多线程,一个线程用于等待用户输入,一个线程用于监听服务端。原创 2021-11-16 16:10:13 · 1401 阅读 · 0 评论 -
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.单方向的传输即可的情况,只要一方发送,另一方将发送的属性(原创 2021-11-09 20:04:49 · 676 阅读 · 0 评论