zoukankan      html  css  js  c++  java
  • day 28

    一.基于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的执行权力>>>比串行执行提升效率

    :

  • 相关阅读:
    ehcache 详解 实例
    oscache ehcache oscache与ehcache的区别
    Nginx_lua
    Java程序员的发展前景
    JAVA MemCache 史无前例的详细讲解!看完包精通MEMCACHE!
    java ssl https 连接详解 生成证书
    使用django的ImageField和from制作上传图片页面
    1.python中的列表及其操作
    django分页
    django和javaweb的比较
  • 原文地址:https://www.cnblogs.com/jxl123/p/9585206.html
Copyright © 2011-2022 走看看