prism

TCP三次握手

≯℡__Kan透↙ 提交于 2020-04-07 13:43:56
本文经过借鉴书籍资料、他人博客总结出的知识点,欢迎提问 序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。 确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号;而确认号指的是期望接收到下一个字节的编号;因此当前报文段最后一个字节的编号+1即为确认号。 确认ACK:占1位,仅当ACK=1时,确认号字段才有效。ACK=0时,确认号无效 同步SYN:连接建立时用于同步序号。当SYN=1,ACK=0时表示:这是一个连接请求报文段。若同意连接,则在响应报文段中使得SYN=1,ACK=1。因此,SYN=1表示这是一个连接请求,或连接接受报文。SYN这个标志位只有在TCP建产连接时才会被置1,握手完成后SYN标志位被置0。 终止FIN:用来释放一个连接。FIN=1表示:此报文段的发送方的数据已经发送完毕,并要求释放运输连接 PS:ACK、SYN和FIN这些大写的单词表示标志位,其值要么是1,要么是0;ack、seq小写的单词表示序号。 字段 含义 URG 紧急指针是否有效。为1,表示某一位需要被优先处理 ACK 确认号是否有效,一般置为1。 PSH

TCP UDP的比较

梦想的初衷 提交于 2020-04-07 13:43:38
UDP TCP 是否连接 无连接 面向连接 是否可靠 不可靠传输 ,不使用流量控制和拥塞控制 可靠 传输,使用流量控制和拥塞控制 连接对象个数 支持一对一,一对多,多对一和多对多交互通信 只能是 一对一 通信 传输方式 面向 报文 面向 字节流 首部开销 首部开销小,仅 8字节 首部 最小20字节 ,最大60字节 适用场景 适用于 实时 应用(IP电话、视频会议、直播等) 适用于要求 可靠传输 的应用,例如文件传输 点赞 收藏 分享 文章举报 minose 发布了122 篇原创文章 · 获赞 30 · 访问量 7万+ 私信 关注 来源: oschina 链接: https://my.oschina.net/u/4326858/blog/3223047

iOS 提交AppStore

断了今生、忘了曾经 提交于 2020-04-07 13:40:27
iOS 提交AppStore不出现构建的版本的问题 不管你以任何方式提交版本到app store,都不会在’活动显示‘所构建的版本 可能是因为以下原因 iOS 10以后,苹果增强了对用户隐私的保护,访问照相机、相册、麦克风、定位、通讯录等,都需要在info.plist 文件中添加权限,而且少一个都不行。根据需要添加,项目中使用了什么,就添加对应的权限 <!-- 相册 --> <key>NSPhotoLibraryUsageDescription</key> <string>App需要您的同意,才能访问相册</string> <!-- 相机 --> <key>NSCameraUsageDescription</key> <string>App需要您的同意,才能访问相机</string> <!-- 麦克风 --> <key>NSMicrophoneUsageDescription</key> <string>App需要您的同意,才能访问麦克风</string> <!-- 位置 --> <key>NSLocationUsageDescription</key> <string>App需要您的同意,才能访问位置</string> <!-- 在使用期间访问位置 --> <key>NSLocationWhenInUseUsageDescription</key> <string

C 语言编程 — 高级数据类型 — 字符串

女生的网名这么多〃 提交于 2020-04-07 13:23:24
目录 文章目录 目录 前文列表 字符串 前文列表 《 程序编译流程与 GCC 编译器 》 《 C 语言编程 — 基本语法 》 《 C 语言编程 — 基本数据类型 》 《 C 语言编程 — 变量与常量 》 《 C 语言编程 — 运算符 》 《 C 语言编程 — 逻辑控制语句 》 《 C 语言编程 — 函数 》 《 C 语言编程 — 高级数据类型 — 指针 》 字符串 在 C 语言中,字符串由 char * 类型表示。它是由一串字符组成的,并以一个空终结字符结尾。所以,字符串实际上是使用 null 字符 ‘\0’ 终止的一维字符数组。下面的声明和初始化创建了一个 “Hello” 字符数组(字符串)。由于在数组的末尾存储了空字符,所以字符数组的大小比单词 “Hello” 的字符数多一个。 char greeting [ 6 ] = { 'H' , 'e' , 'l' , 'l' , 'o' , '\0' } ; 字符串还可以字面量来表示,将要表示的字符串包裹在 " " 中就可以了。也就是说,并不需要把 null 字符显式的放在字符串常量的末尾。C 编译器会在初始化数组时,自动把 ‘\0’ 放在字符串的末尾。 char greeting [ ] = "Hello" ; C 中内置的字符串操作函数: # include <stdio.h> # include <string.h> int

Leetcode: NO.72 编辑距离

為{幸葍}努か 提交于 2020-04-07 12:28:00
题目 链接:https://leetcode-cn.com/problems/edit-distance 给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符 示例 1: 输入:word1 = "horse", word2 = "ros" 输出:3 解释: horse -> rorse (将 'h' 替换为 'r') rorse -> rose (删除 'r') rose -> ros (删除 'e') 示例 2: 输入:word1 = "intention", word2 = "execution" 输出:5 解释: intention -> inention (删除 't') inention -> enention (将 'i' 替换为 'e') enention -> exention (将 'n' 替换为 'x') exention -> exection (将 'n' 替换为 'c') exection -> execution (插入 'u') 解题记录 通过动态规划求解,动态规划一般都是通过分解问题,从结果向前推断,本题中如果两个字符相同的话不需要操作, dp[i][j] = dp[i-1][j-1] ,如果不同的话

C语言高级技巧-在Makefile中引用你的头文件

*爱你&永不变心* 提交于 2020-04-07 11:47:21
在 Makefile 中添加头文 代码仓库: Makefile中添加头文件引用 我们常这样写C程序: #inlcude <stdio.h> int main ( int argc , char * argv [ ] ) { printf ( "Hello WOrld\n" ) ; return 0 ; } 如果你的程序是工程性质的,或者所有的程序都使用同一个头文件,那你没有使用在Makefile中添加头文件的必要,但是如果你是经常教程或者学习时使用做学习笔记,这个功能就非常有用了,我们只需要在Makefile中添加需要的头文件就可以达到在c源文件的加头文件的同样目的。 在Makefile中添加头文件,其实是利用了gcc的-include选项,只需在编译程序的时候指定 -include xxx.h即同等于在源文件中使用 #include <xxx.h> 在Makefile中指定头文件的程序可以像下面这样写: int main ( int argc , char * argv [ ] ) { printf ( "Hello WOrld\n" ) ; return 0 ; } 编译的时候使用 gcc -include stdio.h inc_in_bash.c -o inc_in_bash 其中的 -include stdio.h ==> #include <stdio.h> 来源:

Python每日一练(5)-百词斩

北城以北 提交于 2020-04-07 11:27:21
目录 1. 单词背记 2. 单词提醒 3. 记忆功能 4. 语音朗读 5. 积分评价 6. 默写输出 7. 词汇获取 1. 单词背记 英语是目前世界上使用最广泛的语言之一,也是国际上通用的语言。随着各国交流越来越频繁,英语的地位与日俱增。在中国,已经有成千上万的人加入到英语学习大军中,英语对于我们来说已经是一门不可或缺的技能,但英语单词记忆是一大难题。请编写一个程序,帮助学习者快速背记英语单词。运行程序,随机输出英语单词的汉语意思,要求写出或说出英文。运行效果如下图所示。 示例代码如下: import random # 思考: 一个中文对应一个英语单词,用什么数据类型存储好呢? # 答: 字典 key(中文) --> value(英文) word_dict = { "手机" : "mobile phone" , "美女" : "beauty" , "电脑" : "computer" , "成语" : "idiom" , "价格" : "price" , "年龄" : "age" , "商店" : "shop" } word_list = list ( word_dict ) print ( "**************百词斩**************" ) while True : terms = random . choice ( word_list ) # terms:

面向对象编程(封装、多态)Python版(Demo详解)

烈酒焚心 提交于 2020-04-07 11:27:04
本篇介绍面向对象编程的( 封装、多态 )相关知识点,一起学习,共同进步 Python专栏请参考 : 人生苦短-我学python 文章目录 一.封装 二.多态 三.类属性和实例属性 四.静态方法和类方法 一.封装 面向对象三大特性:封装、继承、多态 封装的意义: ①将属性和方法放到一起做为一个整体,然后通过实例化对象来处理; ②隐藏内部实现细节,只需要和对象及其属性和方法交互就可以了; ③对类的属性和方法增加 访问权限控制。 私有权限:在属性名和方法名 前面 加上两个下划线 __ ①类的私有属性 和 私有方法,都不能通过对象直接访问,但是可以在本类内部访问; ②类的私有属性 和 私有方法,都不会被子类继承,子类也无法访问; ③私有属性 和 私有方法 往往用来处理类的内部事情,不通过对象处理,起到安全作用。 class Master ( object ) : def __init__ ( self ) : self . kongfu = "古法煎饼果子配方" def make_cake ( self ) : print ( "[古法] 按照 <%s> 制作了一份煎饼果子..." % self . kongfu ) class School ( object ) : def __init__ ( self ) : self . kongfu = "现代煎饼果子配方" def make

pyecharts 疫情可视化数据可视化(二)

夙愿已清 提交于 2020-04-07 11:24:47
因为之前写的接口改了,更新了下 一:数据准备阶段 此次数据所有来源均从这两个地方得到 1.腾讯各省份市的疫情接口 2.腾讯疫情历史每日数据接口和国外疫情数据接口 二:工具和环境 IDE:Pycharm 第三方模块 1.json 主要功能:处理接口数据 2.requests 主要功能:获取接口数据 3.pandas 主要功能:将数据保存为csv 4.datetime 主要功能:文件保存时间 5.pyecahrts 主要功能:数据可视化制作地图等 版本1.7.0 6.flask 主要功能:web展示 环境 python3.7 浏览器:Chrome浏览器 三 绘制地图 获取数据方法 返回的是数据需要进行转换 json.loads方法是把json对象转化为python对象 def getdata ( self ) : r = requests . get ( self . url ) . json ( ) data = json . loads ( r [ 'data' ] ) return data 1.多国累计确诊趋势折线图 lines = ( Line ( ) . add_xaxis ( [ x . strftime ( '%Y-%m-%d' ) for x in list ( pd . date_range ( start = '2020-02-25' , end =

Python爬虫——建立IP代理池

女生的网名这么多〃 提交于 2020-04-07 11:24:35
在使用Python爬虫时,经常遇见具有反爬机制的网站。我们可以通过伪装headers来爬取,但是网站还是可以获取你的ip,从而禁掉你的ip来阻止爬取信息。 在request方法中,我们可以通过proxies参数来伪装我们的ip,一些网站上有免费的ip代理网站,可以通过爬取这些ip,经检测后建立ip代理池。 ip代理网站: ( https://www.xicidaili.com/nt/ ) ( https://www.kuaidaili.com/free/intr/ ) 推荐一种常用的伪装头方法 from fake_useragent import UserAgent ua = UserAgent ( ) headers = { 'User-Agent' : ua . random } 接下来进入正题 爬取ip(IPPool.py) import requests from lxml import etree from fake_useragent import UserAgent #伪装 ua = UserAgent ( ) headers = { 'User-Agent' : ua . random } def get_ip ( ) : ip_list = [ ] #路径 url = 'https://www.xicidaili.com/nt/' #ip是有时效的,只爬取第一页