zoukankan      html  css  js  c++  java
  • 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的执行权限:比起串行执行可以提升效率

  • 相关阅读:
    Makefile与shell脚本区别
    Linux fdisk命令参数及用法详解---Linux磁盘分区管理命令fdisk
    李洪强iOS开发之XMPP
    李洪强iOS开发之宏定义方法来初始化一个单例对象
    李洪强iOS开发之拓展篇—UIDynamic(简单介绍)
    李洪强iOS开发之【零基础学习iOS开发】【02-C语言】07-基本数据类型
    李洪强iOS开发之OC[018]对象和方法之间的关系
    李洪强漫谈iOS开发[C语言-011]
    李洪强iOS开发之静态库
    李洪强iOS开发之【零基础学习iOS开发】【02-C语言】06-变量与内存
  • 原文地址:https://www.cnblogs.com/Liu-guang-hui/p/9585192.html
Copyright © 2011-2022 走看看