python学习2
多任务
多进程
进程执行带有参数的任务
获取进程编号
进程间不共享全局变量
只是my_list名字一样
主进程和子进程结束顺序
虽然打印了主进程执行完毕,但主进程没有结束
多线程
多线程的创建步骤
通过线程类创建线程对象
线程执行带有参数的任务
主线程和子线程的结束顺序
线程间的执行顺序
线程之间的执行是无序的
获取当前线程的信息
线程间共享全局变量
线程间资源竞争
互斥锁
死锁
进程和线程区别
网络编程
IP地址
ip和ifconfig
突然笔记本和百度网络不同了,查原因?
是和百度之间网络链接有问题,还是电脑网络设置有问题?
127.0.0.1是自己本机,如果测试这个地址是通的,证明本机的网络是没有问题的。localhost 127.0.0.1
端口号
端口号分类
socket
TCP
编码转换
TCP客户端
AF_INET : IPv4
SOCK_STREAM : TCP通信方式
recv阻塞等待
TCP服务端
IP地址是本机IP地址,端口号可以随便写。
listen 代表等待排队连接的最大的数量。
accept阻塞等待
TCP注意点
程序运行了一次,再次运行报 Address already is use
socket send recv原理
HTTP协议
HTTP协议
HTTP请求报文
HTTP响应报文
HTTP协议通信过程
web服务器
python自带的静态web服务器
python3 -m http.server # 运行web服务器
静态web服务器返回固定页面
浏览器上输入 127.0.0.1:8080
静态web服务器返回指定的页面
多任务
关闭客户端报错
浏览器和web服务器通信,如果浏览器关闭了,会告知一下web服务器,就是发一个空字符串。['']
demo
server.py
import socketif __name__ == '__main__':tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)tcp_server_socket.bind(("", 8080))tcp_server_socket.listen(128)while True:client_socket, client_addr = tcp_server_socket.accept()client_request_data = client_socket.recv(1024).decode()print(client_request_data)with open("./index.html", "rb") as f:file_data = f.read()response_line = "HTTP/1.1 200 OK\r\n"response_head = "Server:pwd\r\n"response_body = file_dataresponse_data = (response_line + response_head + "\r\n").encode() + response_bodyclient_socket.send(response_data)client_socket.close()
index.html
web server test
终端上执行 python server.py
HTML开发网页语言
常见HTML标签
列表标签
表格标签
CSS
jQuery
参考
01_网址_哔哩哔哩_bilibili