• 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的执行权限:比起串行执行可以提升效率

  • 相关阅读:
    创建react项目
    解决移动端弹窗下页面滚动问题
    前端常用的几种加密方式
    http请求状态码
    vue代理配置
    自动化测试实操案例详解 | Windows应用篇
    Google 再见 Java
    一次诡异的 SQL 数量统计查询不准的问题
    Maven
    淘宝技术分享:手淘亿级移动端接入层网关的技术演进之路
  • 原文地址:https://www.cnblogs.com/Liu-guang-hui/p/9585192.html
Copyright © 2020-2023  润新知