每日作业
阅读目录
11月19
11月26
12月3
OPP基础与继承作业12月14
封装与多态作业12月19日
异常与元类作业12月20
本周作业12月21
网络编程作业12月25
明日默写: 带连接循环和通讯循环的TCP通讯模板 作业: 1.整理TCP三次握手、四次挥手图 2.使用UDP完成多人聊天 服务器收到消息后 将客户端地址存储在容器中 再将消息转发给容器中的每个客户端 注意:容器中每个不同的客户端地址仅存储一份 以避免重复发送 建议使用集合 或 字典来存储 3.基于TCP开发一款远程CMD程序 客户端连接服务器后 可以向服务器发送命令 服务器收到命令后执行 无论执行成功还是十遍 将执行结果返回给客户端 执行系统指令使用subprocess模块完成 4.开发一款基于UDP时间服务器 客户端可以指定需要获取的时间格式 如 "YYYY-MM-DD HH:mm:ss"
粘包作业12月27
明日默写: 自定义报头 能够传输报头信息即可 作业: 1.完成课堂上的CMD程序,解决粘包问题 2.完成文件上传下载 3.基于基于TCP的登录注册 客户端提交注册数据 服务器判断是否重复 并返回注册结果 用户数据写入文件 客户端提交都登录数据 服务器判断是否得了成功 并返回登录结果 数据交互直接用json即可 1.发送json长度 2.取出json进行处理
多进程作业12月28
作业: 1、改写下列程序,分别别实现下述打印效果 from multiprocessing import Process import time import random def task(n): time.sleep(random.randint(1,3)) print('-------->%s' %n) if __name__ == '__main__': p1=Process(target=task,args=(1,)) p2=Process(target=task,args=(2,)) p3=Process(target=task,args=(3,)) p1.start() p2.start() p3.start() print('-------->4') 效果一:保证最先输出-------->4 -------->4 -------->1 -------->3 -------->2 效果二:保证最后输出-------->4 -------->2 -------->3 -------->1 -------->4 效果三:保证按顺序输出 -------->1 -------->2 -------->3 -------->4 2、判断上述三种效果,哪种属于并发,哪种属于串行? 3、基于多进程实现并发的套接字通信 提示:需要在server.bind(('127.0.0.1',8080))之前添加一行 server.setsockopt(SOL_SOCKET,SO_REUSEADDR,1) 思考每来一个客户端,服务端就开启一个新的进程来服务它,这种实现方式有无问题? 4、预习互斥锁,编写模拟抢票程序:http://www.cnblogs.com/linhaifeng/articles/7428874.html#_label5 5、什么是多道技术 具体实现原理是什么? 6、CPU在遇到IO或时间过长时会切换,比较两种情况带来的好处与不足
12月29日
今日作业: 1、基友多进程实现并发的套接字通信,完成如下功能: 1、客户端链接功成功后,先登录,登录成功后才可以执行其他功能 2、登录成功后可以执行下载功能 3、登录成功后可以执行上传功能 2、生产者消费者模型理论+代码实现 本周作业: 29日 完整编写 选课系统 我们用md5工具校验你的代码 整理并发编程多进程相关执行点 30-31日 编写FTP作业 题见ttp://www.cnblogs.com/linhaifeng/articles/6129246.html#_label15 无需考虑多用户并发 各组长需在每天下午9点前统计各组员任务完成进度 并汇报给我 没有按时完成等我消息
多线程作业1月2日
4月26作业: 1、基于多线程实现并发的套接字通信 2、基于多线程+TCP协议实现上传下载功能 3、编写一个文本处理工具,总共三个任务,一个接收用户输入,一个将用户输入的内容格式化成大写,一个将格式化后的结果存入文件 4、总结互斥锁、信号量,参考博客http://url.cn/5DMsS9r 5、阅读线程文章 加强理解http://www.cnblogs.com/linhaifeng/articles/7430082.html#_label12
全局解释器锁作业1月3日
1、整理GIL解释器锁,解释以下问题 1、什么是GIL 2、有了GIL会对单进程下的多个线程造成什么样的影响 3、为什么要有GIL 4、GIL与自定义互斥锁的区别,多个线程争抢GIL与自定义互斥锁的过程分析 5、什么时候用python的多线程,什么时候用多进程,为什么? 2、进程池与线程池 1、池的用途,为何要用它 2、池子里什么时候装进程什么时候装线程? 3、基于线程池实现一个可以支持并发通信的套接字,完成以下功能? 执行客户端程序,用户可选的功能有: 1、登录 2、注册 3、上传 4、下载 思路解析: 1、执行登录,输入用户名cgon,密码123,对用户名egon和密码进行hash校验,并加盐处理,将密文密码发送到服务端,与服务端事先存好用户名与密文密码进行对比,对比成功后, 在服务端内存中用hash算法生成一个随机字符串比如eadc05b6c5dda1f8772c4f4ca64db110 然后将该字符串发送给用户以及登录成功的提示信息发送给客户端,然后在服务存放好 current_users={ 'a3sc05b6c5dda1f8313c4f4ca64db110':{'uid':0,'username':'alex'}, 'e31adfc05b6c5dda1f8772c4f4ca64b0':{'uid':1,'username':'lxx'}, 'eadc05b6c5dda1f8772c4f4ca64db110':{'uid':2,'username':'cgon'}, } 用户在收到服务端发来的'eadc05b6c5dda1f8772c4f4ca64db110'以及登录成功的提示信息后,以后的任何操作都会携带该随机字符串'eadc05b6c5dda1f8772c4f4ca64db110‘,服务端会根据该字符串获取用户信息来进行与该用户匹配的操作 在用户关闭连接后,服务端会从current_users字典中清除用户信息,下次重新登录,会产生新的随机字符串 这样做的好处: 1、用户的敏感信息全都存放到服务端,更加安全 2、每次登录都拿到一个新的随机的字符串,不容易被伪造 2、执行注册功能,提交到服务端,然后存放到文件中,如果用户已经存在则提示用户已经注册过,要求重新输入用户信息 3、执行上次下载功能时会携带用户的随机字符串到服务端,如果服务端发现该字符串not in current_users,则要求用户先登录
作业1月4日
作业1月5日
并发周末作业: 1.使用gevent实现TCP并发程序 2.简述协程的工作原理,以及优缺点 3.使用多路复用完成TCP并发程序,在课堂代码的基础上增加客户端连接断开的异常处理, 4.使用多路复用 完成登录注册功能 5.总结阻塞IO 非阻塞IO 多路复用的优缺点 6.预习mysql 7.周一默写多路复用服务器端
作业1月7日

1月8日
##### 1、整理博客 ##### 2、详细解释下列mysql执行语句的每个参数与参数值的含义 mysql -hlocalhost -P3306 -uroot -proot ##### 3、创建以下数据库 db1:采用默认编码 db2:采用gbk编码 db3:采用utf-8编码 -- 将db2数据库编码修改为utf-8编码格式 -- 删除db3数据库 ##### 4、创建表操作 -- 在db1数据库内,为其添加一个t1表,表有两个字段(id int, name char) -- 在db2数据库内,为其添加一个t2表,表有三个字段(name char, age int, phone int) -- 思考完成:在db2数据库内,为db1添加表tt1,字段可以自由定义 -- 修改db1库t1表的name字段char类型长度为20,db2库t2表的age字段int类型长度为3 -- 删除思考题中的tt1表 -- 使用三种查询表的方式 ##### 5、记录操作 -- 一次插入三条数据,为t1插入三条数据 -- 一次插入一条数据,分三次为t2表插入三条数据 -- 分别查询显示t1,t2表下的所有数据 -- t1表下根据id条件更改name名字 -- t2表下工具name删除一条数据 ##### 6、日考 ``` mysqladmin -uroot -p12345 password "admin" create database school charset utf8 create table school.stu(name char, age int, sex char) show create table school.stu; alter table school.stu change sex gender char(5) ```


1月9日作业
##### 1、整理博客 ##### 2、创建一个stu表,字段有:自增主键id,不为空姓名,默认值性别(枚举类型),无限制身高 ##### 3、为stu表依次插入以下三条数据 i)插入一条包含id,name,gender,height四个信息的数据 ii)插入一条name,gender,height三个信息的数据 iii)插入一条只有name信息的数据 ##### 4、实现新表new_stu对已有表stu的字段、约束及数据的拷贝 ##### 5、创建一张有姓名、年龄的teacher表,在最后添加工资字段,在姓名后添加id主键字段 ##### 6、思考:将5中id字段移到到表的最前方,形成最终字段顺序为id、姓名、年龄、工资 ##### 7、完成 公民表 与 国家表 的 多对一 表关系的创建 ##### 8、完成 学生表 与 课程表 的 多对多 表关系的创建 ##### 9、完成 作者表 与 作者简介表 的 一对一 表关系的创建(思考为什么要这样设计)
今日日考答案

浙公网安备 33010602011771号