1 CXYhh121

尚未进行身份认证

暂无相关简介

等级
TA的排名 3w+

【计算机网络】—— TCP三次握手和四次挥手详解和面试题汇总

TCP连接我们之前在传输层协议TCP与UDP中详细介绍了UDP协议和TCP协议格式以及他们各自的特点,我们知道TCP协议是面向连接的,那面向连接就得需要做建立连接,维护连接,断开连接这些工作,其实大家都听过TCP三次握手建立连接,四次挥手断开连接,那我们今天就来具体看看,TCP到底是如何三次握手和四次挥手的。...

2019-08-29 20:56:15

【计算机网络】—— TCP保证可靠传输和提高网络利用率

TCP如何保证可靠传输TCP通过检验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制来实现可靠性传输确认应答(ACK)机制正常数据传输,若接收方收到了发送方的数据,就会返回一个ACK响应确认已经收到TCP将每个字节的数据都进行了编号,即为序列号,每个ACK都带有对应的确认序号,意思是告诉发送方,我已经收到了哪些数据,下一次你应该从哪里开始发。超时重传主机A发给主机B...

2019-08-28 18:29:06

【计算机网络】—— 传输层协议UDP与TCP

再谈端口号我们之前在网络编程套接字提到过端口号,简单的来说端口号(Port)表示了一个主机上进行通信的不同的应用程序,端口号的作用主要是区分服务类别和在同一时间进行多个会话在TCP/IP协议中,用“源IP”,“源端口号”,“目的IP”,“目的端口号”,“协议号”这样一个五元组来标识一个通信(可以通过netstat-n查看),只要上述五个元素一个不同都表示其他通信常...

2019-08-28 18:26:49

【计算机网络】—— 深入理解HTTP

HTTP协议认识URI和URLURI称为统一资源标识符,URL称为统一资源定位符URI用字符串来标识某一个互联网的资源,而URL表示资源所处的地址,因此URL是URI的子集平时我们俗称的"网址"就是我们现在要认识的URL使用http:或者https:等协议方案名获取资源时一定要指定协议的类型登录信息:指定用户名和密码作为从服务器端获取资源时必要的登录信息(身份认证),可选项服...

2019-08-26 19:35:15

【LintCode】—— 0-1背包问题

Backpack题目描述在n个物品中挑选若干物品装入背包,最多能装多满?假设背包的大小为m,每个物品的大小为A[i]样例1:输入:[3,4,8,5],backpacksize=10 输出:9样例2:输入:[2,3,5,7],backpacksize=12 输出:12解题思路这里使用动态规划的思想,动态规划四部曲状态:F(i,j)将第...

2019-08-25 18:57:38

【计算机网络】—— 网络编程套接字

套接字理解源IP地址和目的IP地址我们在初识计算机网络中也提到了源IP地址和目的IP地址,这里我们再来深入理解一下这个概念在IP数据包的头部,有两个IP地址,一个源IP地址,一个目的IP地址,它代表着这个数据包从哪里来准备去往哪里举个例子来说,西游记大家不陌生吧,唐僧西天取经,每到一个地方有人问唐僧你从哪里来准备去哪,唐僧回答的都是“贫僧从东土大唐而来,去往西天取经”,那我们就知...

2019-08-20 16:15:32

【计算机网络】—— HTTP升级为WebSokect

WebSocket和HTTP一、WebSocket是HTML5中的协议,支持持久连接;而Http协议不支持持久连接。首先HTMl5指的是一系列新的API,或者说新规范,新技术。WebSocket是HTML5中新协议、新API.Http协议本身只有1.0和1.1,也就是所谓的Keep-alive,把多个Http请求合并为一个。二、WebSocket是什么样的协议,具体有什么优点。首先,...

2019-08-12 15:27:20

【项目】—— 基于websocket协议的网页版群聊系统

使用开源websocket和mongoose框架编写网页版本的群聊即时通信工具使用HTTP+mongoose+session+MySQL+jsoncpp的技术构成,完成IM工具

2019-08-06 20:35:54

【Linux】—— 线程池的概念及实现

前面我们介绍了线程相关的所有概念,根据之前的所学的概念,接着我们看一下下面这张图线程生命周期,一个线程从生到死的过程线程池以上介绍我们可以看出,在一个应用程序中,我们需要多次使用线程,也就意味着,我们需要多次创建并销毁线程。而创建并销毁线程的过程势必会消耗内存。而在C++中,内存资源是及其宝贵的,计算机的大佬们就提出了线程池的概念。线程池:一种线程使用模式。线程过多会带来调度开销,...

2019-08-01 11:08:05

【项目】—— 语音小管家Sosuke

项目简介借助图灵机器人和百度语音识别和合成等第三方平台和第三方工具使用C++编写一个智能AI对话和语音命令执行的语音管理工具除去交流功能之外还可以执行Linux下相关命令,可执行的命令支持自己配置项目技术点C++STL中主要是map和unorder_map的使用了解http第三方库,使用http中的post接口进行http请求通过图灵机器人API接口将机器人接入Linux平台...

2019-07-31 18:37:38

【计算机网络】—— 初识计算机网络

计算机网络的背景前面一直在学习Linux底层的系统编程,比较枯燥和乏味,现在我们终于结束了所有系统编程的内容,进入比较有意思的网络阶段了,今天我们先了解一下网络的基础知识,了解一下网络发展史及网络的概念模型等知识。网络发展独立模式:计算机之间相互独立网络互联:多台计算机连接在一起,完成数据共享局域网LAN:计算机数量更多了,通过交换机和路由器连接在一起局域网通信:1.任何一个主机...

2019-07-29 17:08:41

【Linux】—— Linux读写者模型

读写者模型读写锁在编写多线程的时候,有一种情况是十分常见的。那就是,有些公共数据修改的机会比较少。相比较改写,它们读的机会反而高的多。通常而言,在读的过程中,往往伴随着查找的操作,中间耗时很长。给这种代码段加锁,会极大地降低我们程序的效率。那么有没有一种方法,可以专门处理这种多读少写的情况呢?有,那就是读写锁读写锁接口设置读写优先初始化销毁加锁和解锁读写者模型源码展示...

2019-07-28 16:06:09

【Linux】—— 基于信号量的生产者消费者模型

信号量前面我们在基于阻塞队列的生产者消费者模型今天我们来看一下基于信号量的生产者消费者模型,也可以说是基于环形队列的。POSIX信号量POSIX信号量和SystemV信号量作用相同,都是用于同步操作,达到无冲突的访问共享资源目的。但POSIX可以用于线程间同步初始化信号量#include<semaphore.h>intsem_init(sem_t*sem,int...

2019-07-27 18:51:12

【Linux】—— Linux线程同步

Linux线程同步前面我们在Linux线程基本概念介绍了线程基本概念,在Linux线程控制中介绍了线程创建,线程终止,线程等待,线程分离等等概念,在Linux线程互斥中介绍了互斥量这一重要的概念,那今天我们接着认识我们线程,介绍一下线程同步相关的概念同步的概念我们前面在线程互斥介绍了互斥这一概念,互斥简单的来说就是某个时刻只允许一个线程访问临界资源,那我们来举个栗子说明一下我们为什么在...

2019-07-25 17:45:25

【Linux】—— Linux线程互斥

Linux线程互斥前面我们在Linux线程基本概念介绍了线程基本概念,在Linux线程控制中介绍了线程创建,线程终止,线程等待,线程分离等等概念,今天我们来介绍一下线程互斥的相关概念线程并发带来的问题互斥概念我们之前在进程间通信之匿名管道讲管道相关概念时我们提到了一些与进程线程间互斥相关的背景概念,我们今天站在线程的角度来回忆一下临界资源:多线程执行流共享的资源叫做临界资源临...

2019-07-24 11:43:55

【Linux】—— Linux线程控制

Linux下线程的控制创建线程由于Linux下不可以像创建进程一样直接用命令创建线程,因此这里我们得先介绍一下POSLX线程库POSLX线程库与线程有关的函数构成了一个完整的系列,绝大多数函数的名字都是以pthread_打头的要使用这些函数库,要通过引入头文件<pthread.h>链接这些线程函数库时要使用编译器命令的-lpthread选项创建线程函数原型...

2019-07-20 19:18:04

【Linux】—— 基于阻塞队列的生产消费者模型

在我们介绍今天的内容之前我们先了解一些相关的概念Linux线程基本概念Linux线程控制Linux线程互斥Linux线程同步接下来我们进入今天的主题生产者消费者模型生产者消费者模型生产者消费者模型概念321原则:3种关系,2类角色,一个交易场所3种关系是:生产者与生产者之间的关系,消费者与消费者之间的关系,生产者与消费者之间的关系2类角色是:一类为生产者,一类为消费者一个交...

2019-07-19 17:32:22

【Linux】—— 线程基本概念

Linux线程概念什么是线程在讲线程之前我们来看一幅图,这个我们应该都不陌生,这个就是我们的进程PCB通过页表+MMU完成虚拟地址到物理地址的映射。接着我们看一下线程,我们之前提到线程是在进程的程序地址空间中运行的,从下图中我们就可以看出来此时并不像上图那样一个PCB指向一个程序地址空间,而是多个PCB指向一个地址空间,这样也就意味着这些PCB共享一个进程地址空间,但是在CPU眼中依然看到...

2019-07-18 21:17:11

【Linux】—— vim下如何批量注释和反注释

之前我们在Linux下vim的使用及配置介绍了vim下一些简单的操作,今天我们来介绍一下一些能让敲代码变得更简便的操作vim下进行批量注释和取消注释批量注释首先我们需要在vim的正常模式下按v进入virtual(可视)模式下接下来我们通过按上下左右键选择我们需要注释的行选择好注释的行之后我们我们按住ctrl+v进入可视块模式接着我们我们按shift+i其实就是大写...

2019-07-17 17:11:19

【牛客网】—— 斐波那契数列的变形

斐波那契凤尾题目描述NowCoder号称自己已经记住了1-100000之间所有的斐波那契数。为了考验他,我们随便出一个数n,让他说出第n个斐波那契数。当然,斐波那契数会很大。因此,如果第n个斐波那契数不到6位,则说出该数;否则只说出最后6位。输入描述:输入有多组数据。每组数据一行,包含一个整数n(1≤n≤100000)。输出描述:对应每一组输入,输出第n个斐波那契数的最后6...

2019-07-16 20:42:35

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 新人勋章
    新人勋章
    用户发布第一条Blink获赞超过3个即可获得
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。