python学习-----9.4----socketserver模块,进程理论,操作系统

基于TCP协议通信(并发)

import socketserver


class MyTCPhandler(socketserver.BaseRequestHandler):
    def handle(self):
        while True:
            try:
                data = self.request.recv(1024)
                if len(data) == 0: break
                print(data)
                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:
    client.send('hello'.encode('utf-8'))
    data = client.recv(1024)
    print(data)
client.close()
客户端

基于UDP协议通信(并发)

import socketserver


class MyUDPhandelr(socketserver.BaseRequestHandler):
    def handle(self):
        data, sock = self.request
        print(data)
        sock.sendto(data.upper(), self.client_address)


if __name__ == '__main__':
    server = socketserver.ThreadingUDPServer(('127.0.0.1', 8081), MyUDPhandelr)
    server.serve_forever()
服务端
from socket import *

client = socket(AF_INET, SOCK_DGRAM)

while True:
    client.sendto(b'hello', ('127.0.0.1', 8081))
    data, server_addr = client.recvfrom(1024)
    print(data)
客户端

什么是进程

  进程指的是一个正在进行/运行的程序,进程是用来描述程序执行过程的虚拟概念

  进程vs程序

  程序:一堆代码

  进程:程序的执行的过程

  进程的概念起源于操作系统,进程是操作系统最核心的概念,操作系统其它所有的概念都是围绕进程来的

  操作系统理论:

    1、操作系统是什么

        操作系统是一个协调、管理、控制计算机硬件资源与应用软件资源的一段控制程序

        有两大功能:

            1、将复杂的硬件操作封装成简单的接口给应用程序或者用户去使用

            2、将多个进程对硬件的竞争变得有序

  操作系统的发展史

      并发:多个任务看起来是同时运行的

      串行:一个任务完完整整地运行完毕,才能运行下一个任务

      多道技术:(复用=》共享/共用)

          1.空间上的复用:多个任务复用内存空间

          2.时间上的复用:多个任务复用cpu的时间

              1.一个任务占用cpu时间过长会被操作系统强行剥夺走cpu的执行权限:比起串行执行反而会降低效率

              2.一个任务遇到io操作也会被操作系统强行剥夺走cpu的执行权限:比起串行执行可以提升效率

原文地址:https://www.cnblogs.com/Liu-guang-hui/p/9585192.html