python网络编程
Posted 徐佳成
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
id tade_date 1 2018-1-2 2 2018-1-26 3 2018-2-8 4 2018-5-6 ...
以上是关于python网络编程的主要内容,如果未能解决你的问题,请参考以下文章