自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 C语言实现单链表操作

SLIST_H #ifndef __SLIST_H__ #define __SLIST_H__ #include<cstdio> #include<malloc.h> #include<assert.h> ...

2020-01-29 16:33:33

阅读数 31

评论数 0

转载 实现Linux select IO复用C/S服务器代码

服务器端 #include<stdio.h> #include<unistd.h> #include<stdlib.h> #include<string.h> #include<sys/socket.h> #include<sys...

2019-10-25 14:25:06

阅读数 12

评论数 0

转载 TCP服务器/客户端实例(C/C )

1.1、Linux下的TCP服务器: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <arpa/inet.h>...

2019-10-21 18:25:57

阅读数 19

评论数 0

转载 Linux下网络socket编程——实现服务器(select)与多个客户端通信

一、关于socket通信 服务器端工作流程: 调用 socket() 函数创建套接字 用 bind() 函数将创建的套接字与服务端IP地址绑定 调用listen()函数监听socket() 函数创建的套接字,等待客户端连接 当客户端请求到来之后 调用 accept()函数接受连接请求,...

2019-10-18 16:43:01

阅读数 15

评论数 0

转载 linux网络编程之用socket实现简单客户端和服务端的通信(基于TCP)

一、介绍基于TCP协议通过socket实现网络编程常用API 1、读者如果不是很熟悉,可以先看我之前写的几篇博客,有socket,地址结构的理解,更加方便读者理解 地址分别是: 1)、http://blog.csdn.net/u011068702/article/details/5647...

2019-10-18 16:42:03

阅读数 16

评论数 0

转载 链表实现生产者消费者

这里的代码围绕一个生产者和一个消费者来分析,生产者生产一个产品,消费者才能使用一个产品,消费者和生产者是同步关系。 一:不加同步互斥锁 pthre#include<stdio.h> #include<stdlib.h> #include<pthread.h&...

2019-07-28 21:56:29

阅读数 24

评论数 0

转载 python装饰器详解

https://blog.csdn.net/xiangxianghehe/article/details/77170585 你会Python嘛? 我会! 那你给我讲下Python装饰器吧! Python装饰器啊?我没用过哎 以上是我一个哥们面试时候发生的真实对白。 ————————————...

2018-09-05 23:23:09

阅读数 72

评论数 0

转载 12步轻松搞定python装饰器

http://python.jobbole.com/81683/ 呵呵!作为一名教python的老师,我发现学生们基本上一开始很难搞定python的装饰器,也许因为装饰器确实很难懂。搞定装饰器需要你了解一些函数式编程的概念,当然还有理解在python中定义和调用函数相关语法的一些特点。 我没法...

2018-09-05 23:21:16

阅读数 43

评论数 0

转载 c++继承父类的子类,如何调用父类的同名函数?

https://blog.csdn.net/qq_26399665/article/details/52080215 子类调用父类的同名函数: 子类和父类返回值参数相同,函数名相同,有virtual关键字,则由对象的类型决定调用哪个函数。 子类和父类只要函数名相同,没有virtu...

2018-08-03 21:58:33

阅读数 5987

评论数 0

转载 循环服务器,并发服务器模型以及I/O多路转接模型

https://blog.csdn.net/xinianbuxiu/article/details/53455784 一、基于TCP/IP协议的基本循环服务器 tcp_server.c     #include &lt;stdio.h&gt; #incl...

2018-08-02 23:14:50

阅读数 94

评论数 0

转载 Linux C 实现一个简单的线程池

https://www.cnblogs.com/GyForever1004/p/9185240.html 线程池的定义 线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线...

2018-07-24 12:03:10

阅读数 95

评论数 0

转载 一个通用纯C队列的实现

https://blog.csdn.net/kxcfzyk/article/details/31728179 队列并不是很复杂的数据结构,但是非常实用,这里实现一个队列是因为在我的另一篇博客非常精简的Linux线程池实现中要用到。   队列API定义如下:     //queu...

2018-07-24 00:30:14

阅读数 985

评论数 0

转载 非常精简的Linux线程池实现(一)——使用互斥锁和条件变量

https://blog.csdn.net/kxcfzyk/article/details/31719687 线程池的含义跟它的名字一样,就是一个由许多线程组成的池子。 有了线程池,在程序中使用多线程变得简单。我们不用再自己去操心线程的创建、撤销、管理问题,有什么要消耗大量CPU时间的任务通通...

2018-07-24 00:29:13

阅读数 73

评论数 0

转载 Linux探秘之用户态与内核态

https://www.cnblogs.com/bakari/p/5520860.html 一、 Unix/Linux的体系架构   如上图所示,从宏观上来看,Linux操作系统的体系架构分为用户态和内核态(或者用户空间和内核)。内核从本质上看是一种软件——控制计算机的硬件资源,并提供上层...

2018-07-23 19:32:38

阅读数 65

评论数 0

转载 C++空类的大小

https://blog.csdn.net/lihao21/article/details/47973609 本文中所说是C++的空类是指这个类不带任何数据,即类中没有非静态(non-static)数据成员变量,没有虚函数(virtual function),也没有虚基类(virtual bas...

2018-07-23 18:53:30

阅读数 130

评论数 0

转载 epoll 水平触发与边缘触发

https://blog.csdn.net/lihao21/article/details/67631516?ref=myread epoll也是实现I/O多路复用的一种方法,为了深入了解epoll的原理,我们先来看下epoll水平触发(level trigger,LT,LT为epoll的默认工...

2018-07-23 18:12:02

阅读数 47

评论数 0

转载 聊聊同步、异步、阻塞与非阻塞

近来遇到了一些常见的概念,尤其是网络编程方面的概念,如:阻塞、非阻塞、异步I/O等等,对于这些概念自己也没有太清晰的认识,只是很模糊的概念,说了解吧也了解,但是要让自己准确的描述概念方面的具体细节,却说的不那么准确,这也是自己在这几个方面也没有细细考究过的原因吧。经过看了些这几个概念的资料,发现同...

2018-07-23 17:13:28

阅读数 55

评论数 0

转载 聊聊Linux 五种IO模型

一篇《聊聊同步、异步、阻塞与非阻塞》已经通俗的讲解了,要理解同步、异步、阻塞与非阻塞重要的两个概念点了,没有看过的,建议先看这篇博文理解这两个概念点。在认知上,建立统一的模型。这样,大家在继续看本篇时,才不会理解有偏差。 那么,在正式开始讲Linux IO模型前,比如:同步IO和异步IO,阻塞I...

2018-07-23 17:12:32

阅读数 48

评论数 0

转载 【Linux基础】Linux的5种IO模型详解

引入 为了更好的理解5种IO模型的区别,在介绍IO模型之前,我先介绍几个概念 1.进程的切换 (1)定义 为了控制进程的执行,内核必须有能力挂起正在CPU上运行的进程,并恢复以前挂起的某个进程的执行。即从用户态(较低的3G字节)切换到内核态(最高的1G字节),非常消耗系统资源。 (2)过...

2018-07-23 17:11:48

阅读数 42

评论数 0

转载 C++子类父类成员函数的覆盖和隐藏实例详解

https://www.jb51.net/article/117380.htm函数的覆盖   覆盖发生的条件:(1) 基类必须是虚函数(使用virtual 关键字来进行声明) (2)发生覆盖的两个函数分别位于派生类和基类 (3)函数名和参数列表必须完全相同函数的隐藏    隐藏发生的条件:(1)子...

2018-07-14 15:26:13

阅读数 156

评论数 0

转载 C++子类对象隐藏了父类的同名成员函数(隐藏篇)

https://blog.csdn.net/alpha_love/article/details/75222175#include &lt;iostream&gt;#include &lt;stdlib.h&gt;#include &lt;string&am...

2018-07-14 14:49:09

阅读数 114

评论数 0

转载 浅谈dup和dup2的用法

https://blog.csdn.net/u012058778/article/details/78705536一、dup和dup2函数 这两个函数都可以来复制一个现有的文件描述符,他们的声明如下: #include &lt;unistd.h&gt; int dup(int ...

2018-07-13 22:28:53

阅读数 79

评论数 0

转载 Linux网络编程——tcp并发服务器(epoll实现)

https://blog.csdn.net/lianghe_work/article/details/46551871通过epoll实现tcp并发回执服务器(客户端给服务器发啥,服务器就给客户端回啥)代码如下:#include &lt;string.h&gt;#include &a...

2018-07-13 21:57:42

阅读数 100

评论数 0

转载 C++的单例模式与线程安全单例模式(懒汉/饿汉)

https://www.cnblogs.com/qiaoconglovelife/p/5851163.html1 教科书里的单例模式  我们都很清楚一个简单的单例模式该怎样去实现:构造函数声明为private或protect防止被外部函数实例化,内部保存一个private static的类指针保存...

2018-07-13 21:57:08

阅读数 44

评论数 0

转载 MSG_PEEK标志

https://blog.csdn.net/aspnet_lyc/article/details/28937229MSG_PEEK标志可以用来读取套接字接收队列中可读的数据,一些情况会用到它,比如为了避免不阻塞而先检查套接字接收队列中可读的数据长度,再采取相应操作。当然,不阻塞也可采取其他的方法,...

2018-07-13 21:56:50

阅读数 49

评论数 0

转载 Linux网络编程——I/O复用函数之epoll

https://blog.csdn.net/lianghe_work/article/details/46544567一、epoll概述epoll 是在 2.6 内核中提出的,是之前的 select() 和 poll() 的增强版本。相对于 select() 和 poll() 来说,epoll 更...

2018-07-11 17:04:32

阅读数 40

评论数 0

转载 Linux网络编程——tcp并发服务器(poll实现)

https://blog.csdn.net/lianghe_work/article/details/46535859想详细彻底地了解poll或看懂下面的代码请参考《Linux网络编程——I/O复用之poll函数》代码:#include &lt;string.h&gt;#inclu...

2018-07-11 17:03:51

阅读数 136

评论数 0

转载 Linux网络编程——I/O复用之poll函数

https://blog.csdn.net/lianghe_work/article/details/46534029一、回顾前面的selectselect优点:目前几乎在所有的平台上支持,其良好跨平台支持也是它的一个优点select缺点:1.每次调用 select(),都需要把 fd 集合从用户...

2018-07-11 17:03:16

阅读数 49

评论数 0

转载 Linux网络编程——tcp并发服务器(I/O复用之select)

https://blog.csdn.net/lianghe_work/article/details/46519633与多线程、多进程相比,I/O复用最大的优势是系统开销小,系统不需要建立新的进程或者线程,也不必维护这些线程和进程。代码示例:#include &lt;stdio.h&...

2018-07-11 17:02:39

阅读数 60

评论数 0

转载 Linux网络编程——I/O复用之select详解

https://blog.csdn.net/lianghe_work/article/details/46506143一、I/O复用概述I/O复用概念:解决进程或线程阻塞到某个 I/O 系统调用而出现的技术,使进程不阻塞于某个特定的 I/O 系统调I/O复用使用的场合:1.当客户处理多个描述符(通...

2018-07-11 17:02:03

阅读数 38

评论数 0

转载 Linux网络编程——tcp并发服务器(多线程)

https://blog.csdn.net/lianghe_work/article/details/46504243tcp多线程并发服务器多线程服务器是对多进程服务器的改进,由于多进程服务器在创建进程时要消耗较大的系统资源,所以用线程来取代进程,这样服务处理程序可以较快的创建。据统计,创建线程与...

2018-07-11 17:00:56

阅读数 1269

评论数 0

转载 Linux网络编程——tcp并发服务器(多进程)

https://blog.csdn.net/lianghe_work/article/details/46503895一、tcp并发服务器概述一个好的服务器,一般都是并发服务器(同一时刻可以响应多个客户端的请求)。并发服务器设计技术一般有:多进程服务器、多线程服务器、I/O复用服务器等。二、多进程...

2018-07-11 17:00:00

阅读数 533

评论数 0

转载 socket编程 -- epoll模型服务端/客户端通信的实现

https://blog.csdn.net/y396397735/article/details/50680359本例实现如下功能: 支持多客户端与一个服务端进行通信,客户端给服务端发送字符串数据,服务端将字符串中小写转为大写后发送回客户端,客户端打印输出经转换后的字符串。 例如:发送abcde,...

2018-07-11 16:48:18

阅读数 168

评论数 0

转载 单链表各种操作详解

#include "stdio.h" #include "stdlib.h" #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 #define MAXSIZE 20 /* 存储空间初始...

2018-07-11 16:00:55

阅读数 62

评论数 0

转载 单链表逆序的多种方式

template&lt;class T&gt; void List&lt;T&gt;::Inverse() { if(first == NULL) return; LinkNode&lt;T&gt...

2018-07-11 12:17:25

阅读数 311

评论数 0

转载 TCP第四次挥手为什么要等待2MSL

当客户端进入TIME-WAIT状态的时候(也就是第四次挥手的时候),必须经过时间计数器设置的时间2MSL(最长报文段寿命)后,才能进入关闭状态,这时为什么呢??? 这最主要是因为两个理由:1、为了保证客户端发送的最后一个ACK报文段能够到达服务器。因为这个ACK有可能丢失,从而导致处在LAST-A...

2018-07-09 23:42:45

阅读数 3270

评论数 1

转载 Linux C++ 回射服务器

http://blog.csdn.net/qq_25425023/article/details/53914820回射服务器就是服务端将客户端的数据发送回去。    我实现的回射服务器返回增加了时间。  服务端代码,可以很容易看懂: [cpp] view plain copy#include &a...

2018-07-09 14:18:14

阅读数 45

评论数 0

转载 string类的基本实现

https://blog.csdn.net/qq_29503203/article/details/52265829在面试中面试官常常会让你写出string类的基本操作,比如:构造函数,析构函数,拷贝构造等等.下面是除此之外的一些操作,希望可以帮助你更好的理解string以便以后的运用:Strin...

2018-07-05 15:18:08

阅读数 161

评论数 0

转载 转圈踢人问题

https://www.cnblogs.com/lanxuezaipiao/p/3339603.html有N个人围一圈依次报数,数到3的倍数的人出列,问当只剩一个人时他原来的位子在哪里?解答:经典的转圈踢人问题,好吧专业一点,约瑟夫环问题,相信大家都会,下面给我的code:int main() {...

2018-06-25 23:48:23

阅读数 75

评论数 0

转载 白话C++系列(27) -- RTTI:运行时类型识别

http://www.cnblogs.com/kkdd-2013/p/5601783.htmlRTTI—运行时类型识别RTTI:Run-Time Type Identification。那么RTTI如何来体现呢?这就要涉及到typeid和dynamic_cast这两个知识点了。为了更好的去理解,那...

2018-06-25 22:23:25

阅读数 59

评论数 0

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