一.基于udp协议的套接字
服务端: from socket import * import subprocess server = socket(AF_INET, SOCK_DGRAM) server.bind(('127.0.0.1', 8081)) while True: data, client_addr = server.recvfrom(1024) print("客户端发来的消息:",data.decode("utf-8")) mag =input("回复>>>").strip() server.recvfrom(mag.encode("utf-8"),client_addr) 客户端: from socket import * client=socket(AF_INET,SOCK_DGRAM) while True: msg=input("发送>>>:").strip() client.sendto(msg.encode("utf-8"),("127.0.0.1",8081)) data,server=client.recvfrom(1024) # print("收到服务端的信息:",data.decode("utf-8")) print(data.decode("gbk"))
二.socketserver模块的使用:
1.基于tcp协议套接字的使用:
服务端: import socketserver # 自定义用来处理通信循环 class MyTCPhandler(socketserver.BaseRequestHandler): def handle(self): while True: try: data = self.request.recv(1024) # print("客户端发来的消息为:", data.decode("utf-8")) # msg = input("回复>>>>").strip() self.request.send(data.upper()) except ConnectionResetError: break self.request.close() if __name__ == "__main__": server = socketserver.ThreadingTCPServer(("127.0.0.1", 8081), MyTCPhandler) server.serve_forever() 客户端: from socket import * client=socket(AF_INET,SOCK_STREAM) client.connect(("127.0.0.1",8081)) while True: # msg=input("发送>>>:").strip() client.send(b"hello") data= client.recv(1024) print("收到服务端的信息:",data.decode("utf-8")) # print(data.decode("gbk"))
2.基于udp协议的套接字的使用
服务端: import socketserver # 自定义用来处理通信循环 class MyUDPhandler(socketserver.BaseRequestHandler): def handle(self): while True: try: data,sock = self.request sock.sendto(data.upper(),self.client_address) # print("客户端发来的消息为:", data.decode("utf-8")) # msg = input("回复>>>>").strip() # self.request.send(data.upper()) except ConnectionResetError: break self.request.close() if __name__ == "__main__": server = socketserver.ThreadingUDPServer(("127.0.0.1", 8081), MyUDPhandler) server.serve_forever() 客户端: from socket import * client=socket(AF_INET,SOCK_DGRAM) while True: # msg=input("发送>>>:").strip() client.sendto(b"hello",("127.0.0.1",8081)) data,server=client.recvfrom(1024) print("收到服务端的信息:",data.decode("utf-8")) # print(data.decode("gbk"))
三.进程:
1.进程:指的是正在运行/执行的程序,是用来描述程序执行过程中的虚拟的概念
2.进程Vs程序
程序:是一堆代码
进程:是程序执行的一个过程
3.进程的概念起源于操作系统,是操作系统最核心的概念,操作系统的其他概念都是围绕进程来的
4.操作系统:是一个具有管理/控制/协调,计算机硬件资源与软件资源的一段控制程序
操作系统的两个功能:
1.将复杂的硬件操作封装成简单的接口,提供给应用程序和用户使用
2.将多个进程对硬件的竞争变的有序化
5.操作系统发展史:
1.并发:多个任务看起来同时运行
2.串发:一个任务完完整整的运行完毕,才能够运行下一个任务
6.多道技术:(复用>>共享/共用)
1.空间上的复用:对个任务复用内存空间 io设备(存贮设备)
2.时间上的复用:多个任务复用CPU时间 计算设备
1.一个任务占用CPU时间过长会被操作系统强行剥夺走CPU的执行权力>>>比串行执行反而会降低效率
2.一个任务遇到io操作也会被操作系统强行剥夺走CPU的执行权力>>>比串行执行提升效率
: