czf的编程工坊

记录编程的点点滴滴

TCP三次握手四次挥手【概念梳理】

TCP协议:传输控制协议,是一个有链接,可靠的,面向字节流的传输层协议。   TCP三次握手: 1.怎么三次握手? 从上面的两幅图中我们可以看出: 第一次握手:SYN = 1, seq = x     客户端发送一个TCP的SYN标准位为1的包,知名客户端打算连接的服务器的端口...

2018-07-31 15:52:32

阅读数 44

评论数 0

五种IO模型

高级IO模型共有五种: 阻塞IO: 在内核将数据准备好之前, 系统调用会一直等待. 所有的套接字, 默认都是阻塞方式。 非阻塞IO: 如果内核还未将数据准备好, 系统调用仍然会直接返回, 并且返回EWOULDBLOCK错误码    -----  非阻塞IO一般需要程序员循环的方式反复尝试读写文...

2018-08-21 15:36:52

阅读数 133

评论数 0

基于ICMP协议的ping命令

要模拟实现ping命令,就需要对ICMP协议有所了解: ICMP:Internet控制报文协议,它是TCP/IP协议族中的一个子协议,用于在IP主机,路由之间传递信息的协议。 传输的信息包括: 1.目的不可达消息 2.超时消息 3.重定向消息 4.时间戳请求和时间戳响应消息 5.回显...

2018-08-07 14:43:06

阅读数 513

评论数 0

TCP的分段和IP的分片

今天被同学问到一个问题: TCP的分段和IP的分片有什么联系? 先介绍两个概念: MSS:(Maxitum Segment Size)最大分段大小的缩写,是TCP协议里面的一个概念      MSS就是TCP数据包每次能够传输的最大数据分段。为了达到最佳的传输效能TCP协议在建立连接的时候通...

2018-08-07 13:41:00

阅读数 66

评论数 0

关于RTT、TTL、MSL的概念解释

     1、 MSL 是Maximum Segment Lifetime英文的缩写,中文可以译为“报文最大生存时间”,他是任何报文在网络上存在的最长时间,超过这个时间报文将被丢弃。因为tcp报文 (segment)是ip数据报(datagram)的数据部分,具体称谓请参见《数据在网络各层中的称...

2018-07-31 16:10:42

阅读数 152

评论数 0

基于socket套接字的UDP/TCP服务器【网络编程】

基于socket套接字基本函数,我们就可以实现一些简单的回显服务器,及基于UDP/TCP的服务器和客户端。 UDP回显服务器: 简单思路: 1.socket()创建socket套接口 2.bind() 绑定IP地址端口号 3.循环的从连接端口接收数据,并重新写入 //////////...

2018-07-30 11:55:05

阅读数 32

评论数 0

网络编程套接字【socket】

在学习Linux系统编程的时候,进程间的通信方式包括——管道、消息队列、共享内存、信号量等方式。但是这些通信方式都村子一定的缺陷——都是在同一个机器上的进程间的通信。为了让不同机器上的进程之间相互通信,Linux网络编程便可解决。linux系统支持套接字接口,可以通过与使用管道类似的方法来使用套接...

2018-07-29 21:31:58

阅读数 231

评论数 0

STL——STL六大组件概念

STL(standard template libaray ):标准模板库,是C++程序设计语言的标准程序库,是一个包罗算法与数据结构的软件框架。STL的目的是标准化组件,所以在STL中使用了泛型编程的思想,对我们常用的数据结构:顺序表、链表、树、哈希以及常用的查找、排序等算法使用模板进行了封装,...

2018-06-19 17:03:34

阅读数 129

评论数 0

C++智能指针

在C语言学习的时候,指针的功能虽然强大,但是也是十分危险,指针的释放和置空在C语言中十分重要,不正确的操作可能会导致内存泄露。那能否让程序自己去控制在不需要资源时自动将其归还给系统。RAII  (Resource Acquisition IsInitialization) :定义一个类来封装资源的...

2018-06-07 16:58:00

阅读数 37

评论数 0

Linux的查找命令

Linux常用的查找命令有:find、which、 whereis、 locate、 type.1.find : 查找任何文件格式:find [PATH] [option] [action]参数说明:        时间查找参数:         -atime  n: 将n*24小时内access...

2018-05-31 16:36:31

阅读数 39

评论数 0

C++的异常机制

在学习C语言时我们的程序出错的处理方式基本都是以下几种:1.终止程序       (除数为0)2.返回一个表示错误的值,附加错误码(errno)3.返回一个合法的值,让程序处于一种非法的状态(atoi())4.调用预先准备好的错误处理函数    (回调函数)5.直接终止程序: abort  或者 ...

2018-05-29 10:46:20

阅读数 250

评论数 0

模板类的特化和类型萃取

模板类的特化:

2018-05-28 17:22:15

阅读数 113

评论数 0

C++模板封装Vector和带头结点的双向链表

C++模板封装Vector:注意:1.在Vector的拷贝构造,扩容函数中,需要注意string的影响#pragma once #include <iostream> #include <assert.h>...

2018-05-28 16:44:30

阅读数 80

评论数 0

模板总结

模板的使用是为了适应泛型编程

2018-05-26 16:26:05

阅读数 46

评论数 0

string和vector的基本接口函数

简单的介绍string和vector 一些基本的函数的含义

2018-05-25 17:03:59

阅读数 260

评论数 0

计算机网络知识初步梳理

ISO/OSI:开放系统互连参考模型。(七层模型)网络fence分层

2018-05-22 16:58:12

阅读数 52

评论数 0

mmap函数

写在前面:内存共享的几种方式:管道:简单、数据量较小共享内存:最快mmap:最高效socket:最稳定这篇文章重点分析一下mmap:void *mmap(void *addr, size_t length, int prot, int flags,                         ...

2018-05-20 20:40:48

阅读数 100

评论数 0

Linux中的popen函数和system函数

2018-05-18 16:29:23

阅读数 541

评论数 0

Linux信号

信号的概念:信号是由用户、系统或者进程发送给目标进程的信息,以通知目标进程某个状态的改变或者系统异常。信号的产生:1>对于前台进程,用户可以通过输入特殊的终端字符来给它发送信号。如输入Ctrl+c向进程发送一个中断信号。2>系统异常。如浮点数异常和非法的...

2018-05-15 20:33:27

阅读数 156

评论数 0

Linux下的简单线程池

问题描述:    在我们的日常生活中,如果我们现在要浏览一个网页或者频繁的打开一个执行时间较短的任务,如果每次调用都创建一个线程,使用结束后就立即释放,那么这样的开销对于操作系统来说有点太过浪费了。而线程池的出现就可以很好地解决这样的问题。线程池:1.特点:1>经典生产者消费...

2018-05-12 12:32:42

阅读数 246

评论数 1

提示
确定要删除当前文章?
取消 删除
关闭
关闭