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操作才应该切换,这样才能提高效率
UDP及操作系统理论的更多相关文章
- 4月23日 python学习总结 套接字UDP和 操作系统理论,多道理论
一.套接字UDP udp是无链接的,先启动哪一端都不会报错 UDP(user datagram protocol,用户数据报协议)是无连接的,面向消息的,提供高效率服务.不会使用块的合并优化算法,, ...
- udp套接字及利用socketserver模块实现并发以及并发编程
一:基于udp协议(数据报协议)的套接字:和tcp协议的套接字对比而言,由于udp是无链接的,所以先启动哪一端都不会报错,而且udp也不会有粘包 现象,所以对比下来,tcp协议的话传输数据更加可靠,但 ...
- 基于udp协议的套接字,socketserver模块,多道技术,进程理论
进程指的是一个正在进行/运行的程序,进程是用来描述程序执行过程的虚拟概念 进程vs程序 程序:一堆的代码 进程:程序执行的过程 进程的概念起源于操作系统,进程是操作系统最核心的概念,操作系统的其他所有 ...
- TCP与UDP比较 以及并发编程基础知识
一.tcp比udp真正可靠地原因 1.为什么tcp比udp传输可靠地原因: 我们知道在传输数据的时候,数据是先存在操作系统的缓存中,然后发送给客户端,在客户端也是要经过客户端的操作系统的,因为这个过程 ...
- 探索UDP套接字编程
UDP和TCP处于同一层网络模型中,也就是运输层,基于二者之上的应用有很多,常见的基于TCP的有HTTP.Telnet等,基于UDP有DNS.NFS.SNMP等.UDP是无连接,不可靠的数据协议服务, ...
- RUDP之一 —— UDP VS TCP
原文链接 原文:http://gafferongames.com/networking-for-game-programmers/udp-vs-tcp/ 介绍 大家好,我是Glenn Fiedler, ...
- 【转】 探索UDP套接字编程
UDP和TCP处于同一层网络模型中,也就是运输层,基于二者之上的应用有很多,常见的基于TCP的有HTTP.Telnet等,基于UDP有DNS.NFS.SNMP等.UDP是无连接,不可靠的数据协议服务, ...
- UNIX网络编程——UDP回射服务器程序(初级版本)以及漏洞分析
该函数提供的是一个迭代服务器,而不是像TCP服务器那样可以提供一个并发服务器.其中没有对fork的调用,因此单个服务器进程就得处理所有客户.一般来说,大多数TCP服务器是并发的,而大多数UDP服务器是 ...
- 【RL-TCPnet网络教程】第16章 UDP用户数据报协议基础知识
第16章 UDP用户数据报协议基础知识 本章节为大家讲解UDP(User Datagram Protocol,用户数据报协议),需要大家对UDP有个基础的认识,方便后面章节UDP实战操作. ...
随机推荐
- Syste类
System类的概述 System 类包含一些有用的类字段和方法.它不能被实例化. 成员方法 public static void gc() 运行垃圾回收器. public static void ...
- MySQL 5.7 源码中的目录结构
MySQl Server的源码可以直接去Github浏览. 这里我们选择5.7版本的:https://github.com/mysql/mysql-server/tree/5.7 也可以通过: git ...
- c#webservice的简单示例
webservice.就概念上来说,可能比较复杂,不过我们可以有个宏观的了解:webservice就是个对外的接口,里面有 函数可供外部客户调用(注意:里面同样有客户不可调用的函数).假若我们是服务端 ...
- 【Leetcode_easy】811. Subdomain Visit Count
problem 811. Subdomain Visit Count solution: class Solution { public: vector<string> subdomain ...
- 【ARM-Linux开发】DRM学习(一)
http://www.landley.NET/kdocs/htmldocs/drm.html 非常好的一个链接,直接把DRM说的很透.很多API的功能都写全了. Table of Contents 1 ...
- 解决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 出问题的环 ...
- Appium+python启动虚拟机上的app
查看appPackage和appActivity方法: 1.先在cmd命令行输入 adb logcat ActivityManager:I *:s 2.点击虚拟机启动app即可查看,/前是appPa ...
- java输入输出 -- Java NIO之选择器
一.简介 前面的文章说了缓冲区,说了通道,本文就来说说 NIO 中另一个重要的实现,即选择器 Selector.在更早的文章中,我简述了几种 IO 模型.如果大家看过之前的文章,并动手写过代码的话.再 ...
- 病毒 | wordpress网站内容被篡改、自动跳转、变全英文的解决办法
去年10月开始,网站经常有文章被莫名其妙的篡改,而且后面还经常出现跳转到色情网站的问题,让人烦不胜烦,困扰了好几个月,最后终于解决了.这里特次记录和总结下此次恼人的事件. 时间:2018年10月 问题 ...
- Centos 修改IP地址、网关、DNS
一.CentOS 修改IP地址 修改对应网卡的IP地址的配置文件 # vi /etc/sysconfig/network-scripts/ifcfg-eth0 电信 # vi /etc/sys ...