• UDP及操作系统理论


    UDP介绍

      udp协议又称用户数据报协议

      在OSI七层模型中,它于TCP共同存在于传输层

      仅用于不要求可靠性,不要求分组顺序且数据较小的简单传输,力求速度

    UDP结合socket用法

    1、创建socket对象

    2、收发消息(发消息时需要指定服务器的ip及端口)

    from socket import *        # 导入socket模块里所有功能
    client = socket(AF_INET,SOCK_DGRAM)    # 这里要指定SOCK_DGRAM,为UDP数据报协议
    
    
    while True:
        msg = input('>>(q:退出):').strip()
        if msg == 'q':
            break
        if not msg:
            continue
        # 发送信息也是发送二进制数据,用sendto()函数  ,括号里加入数据以及服务器的ip及端口
        client.sendto(msg.encode('utf-8'),('127.0.0.1',8080))
        # 接收数据用recvfrom()函数,括号里指定的缓存区大小,经计算1472最合适,
        # 不会超过MTU的大小,所以也不会被切分发送,返回的一个是元组,包括数据还有对方的ip及端口
        # 如果对面发过来的数据报大小比指定的缓存区大,就会报错
        data,addr = client.recvfrom(1472)
        print(data)
    客户端

    1、创建socket对象

    2、绑定ip及端口地址

    3、收发消息(发消息时需要指定对方的ip及端口)

    from socket import * # 导入socket模块
    server = socket(AF_INET,SOCK_DGRAM)
    server.bind(('127.0.0.1',8080))   # 服务器需要绑定自己的ip及端口,让别人能找到你
    
    while True:
        # 接收数据
        data,addr = server.recvfrom(1472)
        # 发送数据
        server.sendto(data.upper(),addr)
    服务器端

    UDP于TCP的区别  ******

    特性上的区别

    #1、传输不可靠

    #2、不需要建立连接

    #3、不会粘包

    #4、单词数据报不能太大

    代码上的区别

    1、服务器端

      --1、服务器端不需要监听  listen

      --2、不需要接收请求  accept

      --3、收数据  recvfrom(缓冲区大小)

      --4、发数据 sendto(二进制数据,地址)

    2、客户端

      --1、不需要建立连接

      --2、收数据 recvfrom(缓冲区大小)

      --3、发数据 sendto(二进制数据,地址)

    DNS服务器(了解)

    1、dns全程:域名解析服务器

    2、dns作用:将域名转换为IP地址  想要连接服务器,就一定要知道IP地址才能访问

    3、使用dns原因:单独的ip地址不方便记忆,所以把ip地址和域名绑定在一起,通过域名可以找到ip地址从而访问网站

    4、dns的形式:dns是cs结构的server端,使用的是udp协议,因为传输的数据小,对速度要求高

            dns本质就是一个数据库,里面就存储域名和ip的对应关系

    5、域名的结构:

      拿news.cctv.com来说

        .com :顶级域名

        cctv  :二级域名

        news :三级域名

    操作系统概念

    1、进程概念:正在运行的程序   进程来自于操作系统,没有操作系统就没有进程

    2、操作系统概念: 操作系统也是一套软件

    3、操作系统功能:

      1)控制硬件,隐藏复杂的硬件细节

      2)将无序的硬件竞争变得有序

    多道技术

    1、产生原因:

      早些年,计算机同一时间只能运行一个程序,这时候是不可能并发的

      要并发,就需要不同的应用程序,如何使多个应用程序同时被运行,这就需要多道技术

    2、多道技术的原理: (多道技术主要是为了提高计算机的利用率)

      --1、空间复用:把内存分割为不同区域,每个区域装入不同的程序

      --2、时间复用:当一个程序执行IO操作时,切换到另一个程序来执行

             光切换还不行,必须在切换前保存当前状态,以变恢复执行

    3、注意点:

      并不是多道就一定提高了效率

      如果多个任务都是纯计算 ,那么切换反而降低了效率

      遇到IO操作才应该切换,这样才能提高效率

  • 相关阅读:
    Fluentd部署:如何监控Fluentd
    【615】国内国外经纬度坐标转换
    【614】矢量数据转栅格数据(cv2.fillPoly/cv2.polylines)
    【613】U-Net 相关
    【612】深度学习模型相关问题
    【611】keras 后端 backend 相关函数(Dice实现)
    面试官:new 关键字在 JVM 中是如何执行的?
    IntelliJ IDEA 2021.2 发布,这次要干掉 FindBugs 了!!
    Nginx 实现 10w+ 并发之 Linux 内核优化
    我们真的需要全栈开发吗?
  • 原文地址:https://www.cnblogs.com/hesujian/p/10952649.html
Copyright © 2020-2023  润新知