python网络编程,,python网络编程


python网络编程(进阶)

第一部分

1.简述OSI7层模型及其作用?

# OSI七层模型
应用层
表示层
会话层
数据传输层
网络层
数据链路层
物理层
?
OSI五层协议
应用层
传输层
网络层
数据链路层
物理层

2.简述TCP三次握手、四次挥手的流程。

3.TCP和UDP的区别?

TCP协议 可靠、面向连接、速度慢、能传输的数据长度不限
?
UDP协议 即时通讯工具,不可靠 面上数据包 速度快 能传输的数据长度有限

4.什么是黏包?

一个客户端发送了两个消息,到另一个客户端时,两条消息,自动合并成了一条消息

5.什么是B/S和C/S架构?

B/S浏览器对服务器架构,节省资源,不用更新,不依赖环境

C/S客户端对服务器架构,安全性高,程序庞大

6.请实现一个简单的socket编程(客户端和服务端可以进行收发信息)

# Server
import socket
?
sk = socket.socket()
sk.bind((‘127.0.0.1‘,8000))
sk.listen()
?
conn,addr = sk.accept()
msg = conn.recv(1024).decode(‘utf-8‘)
print(msg)
?
# Client
import socket
sk = socket.socket()
sk.connect((‘127.0.0.1‘,8000))
?
msg = input(‘请输入信息:‘)
sk.send(msg.encode(‘utf-8‘))

7.简述进程、线程、协程的区别?

8.什么是GIL锁?

9.进程之间如何进行通信?

10.python如何使用线程池、进程池?

11.请通过yield关键词实现一个协程?

12.什么是异步非阻塞?

13.什么是死锁?如何避免?

14.程序从flag a执行到flag b的时间大致是多少秒?

import threading
import time
def _wait():
time.sleep(60)
?
# flag a
t = threading.Thread(target=_wait)
t.setDeamon(False)
t.start()
# flag b

15.程序从flag a 执行到flag b的时间大致是多少秒?

improt threading
improt time
def _wait():
time.sleep(60)
?
# flag a
t = theading.Thread(target=_wait)
t.setDeamon(True)
t.start()
# flag b

16.程序从flag a执行到flag b的时间大致是多少秒?

import theading
import time
def _wait():
time.sleep(60)
# flag a
t = theading.Thread(target=_wait)
t.start()
t.join()
# flag b

17.读程序,请确认执行到最后number是否一定为0

import threaing 
loop = int(1E7)
def _add(loop:int =1):
global number
for _ in range(loop):
number += 1
?
def _sub(loop:int=1):
global number
for _ in range(loop):
number+=1
number = 0
?
ta = theading.Thread(target=_add,args=(loop,))
ts = theading.Thread(target=_sub,args=(loop,))
ta.start()
ta.join()
ts.start()
ts.join()

18.读程序,请确认执行到最后number是否一定为0

import threaing 
loop = int(1E7)
def _add(loop:int =1):
global number
for _ in range(loop):
number += 1
?
def _sub(loop:int=1):
global number
for _ in range(loop):
number-=1
number = 0
?
ta = theading.Thread(target=_add,args=(loop,))
ts = theading.Thread(target=_sub,args=(loop,))
ta.start()
ts.start()
ta.join()
ts.join()

19.Mysql常见数据库引擎及区别?

20.简述事务及其特性?

21.事务的隔离级别

22.char和varchar的去帮别?

23.mysql中varchar与char的区别以及varchar(50)中的50代表的含义

24.Mysql中delete和truncate的区别

25.where子句中有a,b,c三个查询条件,创建一个组合索引abc(a,b,c),以下哪种会命中索引

(a)(b)(c)(a,b)(b,c)(a,c)(a,b,c)

26.组合索引遵循什么原则才能命中索引?

27.列举mysql常见的函数

28.Mysql数据库导入、导出的命令有哪些

29.什么是sql注入

30.简述left join和inner join的区别?

31.SQL语句中having的作用

32.Mysql数据库中varchar和text最多能存储多少个字符?

33.Mysql的索引方式有几种?

34.什么时候索引会失效(有索引但无法命中索引)

35.数据库优化方案?

36.什么是Mysql慢日志?

37.设置表,关系如下:教师、班级、学生、科室。科室与教师为一对多关系,教师与班级为多对多关系,班级与学生为一对多关系,科室中需体现层级关系。

1.写出各种表的逻辑字段2.根据上述关系表a.查询教师id=1的学生数b.查询科室id=3的下级部分数c.查询所带学生最多的教师的id

38.有staff表,字段为主键Sid,姓名Sname,性别Sex(值,“男”,‘女’),课程表Course,字段为主键Cid,课程名称Cname,关系表SC_Relatiion,字段为Student表主键Sid和Course表主键Cid,组成联合主键,请用SQL查询语句写出查询所有选“计算机”课程的男士的姓名。

39.根据表关系写SQL语句

查询所有同学的学号、姓名、选棵数、总成绩;

查询姓‘李’的老师的个数

查询平均成绩大于60分的同学的学号和平均成绩;

查询有课程成绩小于60分的同学的学号、姓名

删除学习“叶萍”老师可的score表的记录

查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分

查询每门课程被选修的学生数

查询出只选修了一门课程的全部学生的学号和姓名

查询选修“杨艳”老师所授课程的学生中,成绩最高的学生姓名及其成绩;

查询两门以上不及格课程的同学的学号及其平均成绩;

第二部分

1.什么是IO多路复用

2.async/await关键字的作用

3.Mysql的执行计划的作用

4.简述Mysql触发器、函数、视图、存储过程?

5.数据库中有表:t_table_date

idtade_date12018-1-222018-1-2632018-2-842018-5-6...

python网络编程

评论关闭