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操作才应该切换,这样才能提高效率

UDP及操作系统理论的更多相关文章

  1. 4月23日 python学习总结 套接字UDP和 操作系统理论,多道理论

    一.套接字UDP udp是无链接的,先启动哪一端都不会报错 UDP(user datagram protocol,用户数据报协议)是无连接的,面向消息的,提供高效率服务.不会使用块的合并优化算法,, ...

  2. udp套接字及利用socketserver模块实现并发以及并发编程

    一:基于udp协议(数据报协议)的套接字:和tcp协议的套接字对比而言,由于udp是无链接的,所以先启动哪一端都不会报错,而且udp也不会有粘包 现象,所以对比下来,tcp协议的话传输数据更加可靠,但 ...

  3. 基于udp协议的套接字,socketserver模块,多道技术,进程理论

    进程指的是一个正在进行/运行的程序,进程是用来描述程序执行过程的虚拟概念 进程vs程序 程序:一堆的代码 进程:程序执行的过程 进程的概念起源于操作系统,进程是操作系统最核心的概念,操作系统的其他所有 ...

  4. TCP与UDP比较 以及并发编程基础知识

    一.tcp比udp真正可靠地原因 1.为什么tcp比udp传输可靠地原因: 我们知道在传输数据的时候,数据是先存在操作系统的缓存中,然后发送给客户端,在客户端也是要经过客户端的操作系统的,因为这个过程 ...

  5. 探索UDP套接字编程

    UDP和TCP处于同一层网络模型中,也就是运输层,基于二者之上的应用有很多,常见的基于TCP的有HTTP.Telnet等,基于UDP有DNS.NFS.SNMP等.UDP是无连接,不可靠的数据协议服务, ...

  6. RUDP之一 —— UDP VS TCP

    原文链接 原文:http://gafferongames.com/networking-for-game-programmers/udp-vs-tcp/ 介绍 大家好,我是Glenn Fiedler, ...

  7. 【转】 探索UDP套接字编程

    UDP和TCP处于同一层网络模型中,也就是运输层,基于二者之上的应用有很多,常见的基于TCP的有HTTP.Telnet等,基于UDP有DNS.NFS.SNMP等.UDP是无连接,不可靠的数据协议服务, ...

  8. UNIX网络编程——UDP回射服务器程序(初级版本)以及漏洞分析

    该函数提供的是一个迭代服务器,而不是像TCP服务器那样可以提供一个并发服务器.其中没有对fork的调用,因此单个服务器进程就得处理所有客户.一般来说,大多数TCP服务器是并发的,而大多数UDP服务器是 ...

  9. 【RL-TCPnet网络教程】第16章 UDP用户数据报协议基础知识

    第16章      UDP用户数据报协议基础知识 本章节为大家讲解UDP(User Datagram Protocol,用户数据报协议),需要大家对UDP有个基础的认识,方便后面章节UDP实战操作. ...

随机推荐

  1. Syste类

    System类的概述 System 类包含一些有用的类字段和方法.它不能被实例化. 成员方法 public static void gc()  运行垃圾回收器. public static void ...

  2. MySQL 5.7 源码中的目录结构

    MySQl Server的源码可以直接去Github浏览. 这里我们选择5.7版本的:https://github.com/mysql/mysql-server/tree/5.7 也可以通过: git ...

  3. c#webservice的简单示例

    webservice.就概念上来说,可能比较复杂,不过我们可以有个宏观的了解:webservice就是个对外的接口,里面有 函数可供外部客户调用(注意:里面同样有客户不可调用的函数).假若我们是服务端 ...

  4. 【Leetcode_easy】811. Subdomain Visit Count

    problem 811. Subdomain Visit Count solution: class Solution { public: vector<string> subdomain ...

  5. 【ARM-Linux开发】DRM学习(一)

    http://www.landley.NET/kdocs/htmldocs/drm.html 非常好的一个链接,直接把DRM说的很透.很多API的功能都写全了. Table of Contents 1 ...

  6. 解决ffmpeg执行报错“ffmpeg: error while loading shared libraries: libavdevice.so.58: cannot open shared object file: No such file or directory”的问题

    问题现象: 执行ffmpeg命令后报错: ffmpeg: error : cannot open shared object file: No such file or directory 出问题的环 ...

  7. Appium+python启动虚拟机上的app

    查看appPackage和appActivity方法: 1.先在cmd命令行输入  adb logcat ActivityManager:I *:s 2.点击虚拟机启动app即可查看,/前是appPa ...

  8. java输入输出 -- Java NIO之选择器

    一.简介 前面的文章说了缓冲区,说了通道,本文就来说说 NIO 中另一个重要的实现,即选择器 Selector.在更早的文章中,我简述了几种 IO 模型.如果大家看过之前的文章,并动手写过代码的话.再 ...

  9. 病毒 | wordpress网站内容被篡改、自动跳转、变全英文的解决办法

    去年10月开始,网站经常有文章被莫名其妙的篡改,而且后面还经常出现跳转到色情网站的问题,让人烦不胜烦,困扰了好几个月,最后终于解决了.这里特次记录和总结下此次恼人的事件. 时间:2018年10月 问题 ...

  10. Centos 修改IP地址、网关、DNS

    一.CentOS 修改IP地址   修改对应网卡的IP地址的配置文件 # vi /etc/sysconfig/network-scripts/ifcfg-eth0   电信 # vi /etc/sys ...