network
network
全栈开发
全栈开发工程师,互联网教育特约讲师
展开
-
network专栏 01.网络编程 01.网络协议
CS与BS架构Client <<======>> Server客户端与服务器Browser <<======>> Server浏览器与服务器网络通信:网络 --> 物理链接介质 + 互联网通信协议跨地域数据传输 --> 通信OSI七层协议协议:规定数据的组织格式格式:头部[打包] + 数据部分每层打包/拆解一个头OSI七层协议应用层、表示层、会话层 浏览器应用采用http协议原创 2022-03-26 12:11:28 · 1076 阅读 · 0 评论 -
network专栏 01.网络编程 02.tcp协议_套接字
import socket# 获取手机对象 connphone = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 发送连接请求 输入服务端的ip及端口phone.connect(('127.0.0.1', 8080))# 发送消息phone.send('hello world 美丽心灵'.encode('utf-8'))# 接收消息data = phone.recv(1024)print(data.decode('utf-8'.原创 2022-03-26 12:14:56 · 2019 阅读 · 0 评论 -
network专栏 01.网络编程 03.udp协议_套接字
import socketphone = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)while True: msg = input('客户端:').strip() if msg == 'exit': break phone.sendto(msg.encode('utf-8'), ('127.0.0.1', 8080)) data, server_addr = phone.recvfrom(102.原创 2022-03-26 12:16:59 · 1313 阅读 · 0 评论 -
network专栏 01.网络编程 04.socketserver 01.tcp
import socketserverclass MyRequestHandle(socketserver.BaseRequestHandler): def handle(self): conn = self.request print(conn) client_addr = self.client_address print(client_addr) while True: try:.原创 2022-03-26 12:23:50 · 1080 阅读 · 0 评论 -
network专栏 01.网络编程 04.socketserver 02.udp
import socketserverclass MyrequestHandle(socketserver.BaseRequestHandler): def handle(self): msg = self.request[0] server = self.request[1] client_addr = self.client_address server.sendto(msg.upper(), client_addr).原创 2022-03-26 12:24:57 · 65 阅读 · 0 评论 -
network专栏 01.网络编程 05.远程执行命令
import structfrom socket import *import subprocessimport jsonserver = socket(AF_INET, SOCK_STREAM)server.bind(('127.0.0.1', 8080))server.listen(6)while True: conn, client_addr = server.accept() while True: try: cmd = c.原创 2022-03-26 12:27:16 · 342 阅读 · 0 评论 -
network专栏 02.进程与线程 01.进程
"""多道技术: 让单核实现并发的技术: 并发:看起来像同时进行的任务,就可以称之为并发 并行:真正同时执行的任务 并行属于并发的一种 单核计算机,无法实现并行,可以实现并发单道串行: A输入 --> 处理 --> A输出 ==》 B输入 --> 处理 --> B输出多道并发: A输入 --> 处理 --> A输出 B输入 --> 处理 .原创 2022-03-26 12:39:57 · 163 阅读 · 0 评论 -
network专栏 02.进程与线程 02.线程 01.线程理论
"""进程:资源单位,在内存空间中开辟一块独立的空间线程:执行单位,不会开辟空间,去所在的进程获取资源进程与线程都是虚拟单位开设进程比开设线程更加消耗资源多线程:多IO操作时开启 更加节省资源多进程:多计算操作时开启 同时进行计算通常在项目中,是多进程下开设多线程""""""开设线程不需要在main方法下面,但是习惯将其写在main方法下同一个进程下的线程,会共享该进程下的全局数据先开启的进程,未必先结束"""from threading import Thread,.原创 2022-03-26 12:43:27 · 311 阅读 · 0 评论 -
network专栏 02.进程与线程 02.线程 02.互斥锁
from threading import Thread, Lockimport time"""因为线程是公用同一个全局变量,因此锁可以放在全局变量位置由于每个进程会创建自己的资源,因此进程锁要放在创建进程之前的位置"""mutex = Lock()money = 100def task(): global money # 上锁 mutex.acquire() temp = money time.sleep(0.01) money = .原创 2022-03-26 12:46:21 · 117 阅读 · 0 评论 -
network专栏 02.进程与线程 02.线程 03.池
进程池"""客户端过多时,无法无限开设进程,因此需要通过进程池来控制保证计算机硬件安全的情况下,最大限度的开设进程"""import timefrom concurrent.futures import ProcessPoolExecutor# 默认开设当前CPU核心个数的进程# 可传入具体的进程数pool_p = ProcessPoolExecutor(2)def task(n): print(n) time.sleep(2) return f'ta原创 2022-03-26 12:48:26 · 119 阅读 · 0 评论 -
network专栏 02.进程与线程 03.IO
"""阻塞IO: 向操作系统获取数据: 待对方发送数据 将数据从操作系统拷贝给应用程序的过程非阻塞IO: 提交后,无论是否获取到数据,都会拿到一个结果,从而继续执行其他操作 将阻塞操作变为非阻塞操作 该模型会使CPU不停的空转,消耗大量没必要的资源""""""IO多路复用: 操作系统提供的监管机制,能够监管socket对象和conn对象,并且可以监管多个对象 但是该机制是for循环检测,当对象数量庞大时,会.原创 2022-03-27 09:45:42 · 89 阅读 · 0 评论