对于之前学过的无论是聊天室服务器,还是回射服务器都是在Linux环境下,写一个终端客户端,用户通过客户端和服务器通过定长的数据包或者Json键值包进行交互.而对于web服务器,服务器还是在终端运行,但是客户端成为了浏览器,用户或者爬虫程序通过浏览器和服务器交互数据,对于一些数据格式分析上,C/S两端也应该达成共识,HTTP是一个客户端和服务器端请求和应答的标准. HTTP协议 在讲述之前,我们... 作者:qq_41681241 发表于 2019/02/11 12:36:18 原文链接 https://blog.csdn.net/qq_41681241/article/details/86907477 阅读:39 继续阅读 >>


畅柯 19/02/11 12:36:18
Linux下的系统I/O在TCP中常见的通过以下几个函数: open(),close(),recv(),send(),lseek(),read(),write() 要是我们在服务器程序中对监听套接字不进行非阻塞设置,那么整个程序中调用以上函数处理I/O事件默认就是阻塞的. 阻塞I/O 对于阻塞读,即调用read,recv等,将数据从内核态复制到用户态.内核缓冲区没数据就一直等,不做其他事情... 作者:qq_41681241 发表于 2019/02/08 16:22:55 原文链接 https://blog.csdn.net/qq_41681241/article/details/86775570 阅读:13 继续阅读 >>


畅柯 19/02/08 16:22:55
文章大纲: 1. 阻塞/非阻塞 同步/异步 2. I/O中的阻塞/非阻塞 同步/异步 3. BIO、伪异步I/O、NIO、AIO四种常用I/O模型及其对比 4. Reactor、Proactor两种I/O设计模式及其对比 5. 总结 参考《Neety权威指南》 阻塞/非阻塞 & 同步/异步 在介绍I/O模型之前需要先理解几个概念,理解了阻塞/非阻塞 & 同步/异步的联系和区别才能理... 作者:qq_41681241 发表于 2019/02/02 16:58:11 原文链接 https://blog.csdn.net/qq_41681241/article/details/86750693 阅读:0 继续阅读 >>


畅柯 19/02/02 16:58:11
线程池是在处理高并发任务中有比较重要的价值,他的实现最基本原理就生产者和消费者模型,刚开始就开一定数量的线程,以程序中的某些功能模块为对象,不断使用这些固定数量的线程调度进行处理,避免了在高并发情况下,不断开辟线程造成的进程资源消耗.下面是一个简单的线程池程序,主要使用C++11中一些简单的新特性的最简单的线程池实现. ThreadPool.h #pragma once #include &lt... 作者:qq_41681241 发表于 2019/01/31 19:53:46 原文链接 https://blog.csdn.net/qq_41681241/article/details/86723964 阅读:23 继续阅读 >>


畅柯 19/01/31 19:53:46
还记得童话《卖火柴的小女孩》吗?现在,你知道小女孩有多少根火柴,请找出一种能使用所有火柴拼成一个正方形的方法。不能折断火柴,可以把火柴连接起来,并且每根火柴都要用到。 输入为小女孩拥有火柴的数目,每根火柴用其长度表示。输出即为是否能用所有的火柴拼成正方形。 示例 1: 输入: [1,1,2,2,2] 输出: true 解释: 能拼成一个边长为2的正方形,每边两根火柴。 示例 2: 输入: [3,3... 作者:qq_41681241 发表于 2019/01/30 23:04:21 原文链接 https://blog.csdn.net/qq_41681241/article/details/86695911 阅读:10 继续阅读 >>


畅柯 19/01/30 23:04:21
#include <iostream> #include<thread> #include<mutex> #include<condition_variable> #include<queue> using namespace std; //任务队列 queue<int>products ; mutex m ; condi... 作者:qq_41681241 发表于 2019/01/30 20:46:27 原文链接 https://blog.csdn.net/qq_41681241/article/details/86708303 继续阅读 >>


畅柯 19/01/30 20:46:27
给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 示例 1: 输入: 2 / 1 3 输出: true 示例 2: 输入: 5 / 1 4 / 3 6 输出: false 解释: 输入为: [5,1,4,null,null,... 作者:qq_41681241 发表于 2019/01/27 10:29:09 原文链接 https://blog.csdn.net/qq_41681241/article/details/86663954 阅读:24 继续阅读 >>


畅柯 19/01/27 10:29:09
看完TCP/IP传输层完了之后,感觉对传输层的认识还是比较零散,现在就将这块的内容进行比较系统的总结. 传输层协议具有代表性的是TCP协议和UDP协议,TCP是一种可靠的,安全的,通信之前必须建立连接,才能实现数据传送的传输层协议,时效性弱.UDP是一种不可靠,通信之前不需建立连接就可传输数据的传输协议,时效性强.对于两种协议在网络数据传输中各占春秋,没有谁优谁劣区分. ... 作者:qq_41681241 发表于 2019/01/27 10:10:36 原文链接 https://blog.csdn.net/qq_41681241/article/details/86654125 阅读:35 继续阅读 >>


畅柯 19/01/27 10:10:36
本来在leetcode里面搜的是哈系表相关算法练习,把这个题做完后,感觉没用到相关知识[哭笑一波 作者:qq_41681241 发表于 2019/01/26 22:46:58 原文链接 https://blog.csdn.net/qq_41681241/article/details/86662150 阅读:11 继续阅读 >>


畅柯 19/01/26 22:46:58
仔细检查序列和确认号码。它们存在的目的直接关系到互联网,通常大多数网络都是分组交换(我们将在短时间内解释),因为我们几乎总是发送和接收大于最大传输单元(也称为MTU)的数据 ,大多数网络是1500。 我们来看看我们要分析的领域: 您可以看到,序列号继续确认号码。 我们将要解释这些数字如何增加,它们的意思是什么,各种操作系统如何以不同的方式处理它们,最后是什么方式,这些数字可能成为那些需要牢固的... 作者:qq_41681241 发表于 2019/01/24 00:10:27 原文链接 https://blog.csdn.net/qq_41681241/article/details/86619498 阅读:18 继续阅读 >>


畅柯 19/01/24 00:10:27