01 2018 档案

摘要:在使用一些协议通讯的时候,比如Telnet,会有一个字节字节的发送的情景,每次发送一个字节的有用数据,就会产生41个字节长的分组,20个字节的IP Header 和 20个字节的TCP Header,这就导致了1个字节的有用信息要浪费掉40个字节的头部信息,这是一笔巨大的字节开销,而且这种Small 阅读全文
posted @ 2018-01-31 15:46 Curo 阅读(540) 评论(0) 推荐(0) 编辑
摘要:对于基于TCP开发的通讯程序,有个很重要的问题需要解决,就是封包和拆包。 为什么基于TCP的通讯程序需要进行封包和拆包 TCP是个"流"协议,所谓流,就是没有界限的一串数据,大家可以想想河里的流水,是连成一片的,其间是没有分界线的。但一般通讯程序开发是需要定义一个个相互独立的数据包的,比如用于登陆的 阅读全文
posted @ 2018-01-31 15:28 Curo 阅读(1060) 评论(0) 推荐(0) 编辑
摘要:一 .基本概念: 什么是粘包 TCP粘包是指发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾。 长连接与短连接 1.长连接 Client方与Server方先建立通讯连接,连接建立后不断开, 然后再进行报文发送和接收。 2.短连接 Client方与Ser 阅读全文
posted @ 2018-01-31 10:33 Curo 阅读(300) 评论(0) 推荐(0) 编辑
摘要:一:基本概念 本文转载于:http://lib.csdn.net/article/datastructure/9218 1:什么是生成树? 对于图G<V,E>,如果其子图G'<V',E'>满足V'=V,且G'是一棵树,那么G'就是图G的一颗生成树。生成树是一棵树,按照树的定义,每个顶点都能访问到任何 阅读全文
posted @ 2018-01-30 18:48 Curo 阅读(788) 评论(0) 推荐(0) 编辑
摘要:求二叉树中的节点个数 求二叉树中叶子节点的个数 求二叉树的深度 求二叉树第K层的节点个数 递归遍历前序中序后序 非递归遍历前序中序后序层序 1 前序遍历 2 中序遍历 3 后序遍历 4 层序遍历 将二叉查找树变为有序的双向链表 求二叉树的镜像 判断两棵二叉树是否结构相同 判断二叉树是不是平衡二叉树 阅读全文
posted @ 2018-01-29 20:53 Curo 阅读(142) 评论(0) 推荐(0) 编辑
摘要:发送端(客户端) 接收端(服务器) 阅读全文
posted @ 2018-01-29 16:39 Curo 阅读(717) 评论(0) 推荐(0) 编辑
摘要:本文转载于:http://blog.csdn.net/mafuli007/article/details/7314917 (在tcp的文件发送部分有应用) 对输入流操作:seekg()与tellg()对输出流操作:seekp()与tellp()下面以输入流函数为例介绍用法:seekg()是对输入文件 阅读全文
posted @ 2018-01-29 11:10 Curo 阅读(629) 评论(0) 推荐(0) 编辑
摘要:一、C++文件中的路径 文件路径中的正斜杠和反斜杠 正斜杠,又称左斜杠,符号是"/"; 反斜杠,也称右斜杠,符号是"\"。 文件路径的表示可以分为绝对路径和相对路径: 1、 绝对路径 绝对路径表示相对容易, 例如要打开“C: \Documents andSettings\All Users\My D 阅读全文
posted @ 2018-01-29 10:03 Curo 阅读(3970) 评论(0) 推荐(0) 编辑
摘要:基础知识解读 TCP是TCP/IP协议族中非常复杂的一个协议。它具有以下特点: 1:面向连接的运输层协议。在使用TCP协议之前,首先需要建立TCP连接。传送数据完毕后,必须释放已经建立的TCP连接。 2:一条TCP连接有两个端点,连接是点对点的。 3:提供可靠交付的服务。通过TCP连接传送的数据,不 阅读全文
posted @ 2018-01-28 20:50 Curo 阅读(485) 评论(0) 推荐(0) 编辑
摘要:TCP建立连接三次握手和释放连接四次握手 本文转载于:http://blog.csdn.net/guyuealian/article/details/52535294 在谈及TCP建立连接和释放连接过程,先来简单认识一下TCP报文段首部格式的的几个名词(这里只是简单说明,具体请查看相关教程) 实际上 阅读全文
posted @ 2018-01-28 19:47 Curo 阅读(178) 评论(0) 推荐(0) 编辑
摘要:为了更容易理解,我们举一个小例子来说明服务器与客户端之间的连接过程。 有一个饭店,饭店里有服务员,服务员用于招待客人 特别要注意的是:要记住相关函数的各个参数都是什么,什么时候返回SOCKET_ERROR,什么时候返回INVALID_SOCKET 服务器 客户端 阅读全文
posted @ 2018-01-28 16:21 Curo 阅读(428) 评论(0) 推荐(0) 编辑
摘要:IP: IP分为公有ip和私有ip. 私有ip分为以下5类: 具体解析: ①A类地址:第一位为0,IP范围为1.0.0.0~127.255.255.255,其第一段为网络号(共126个网络号),后三段表示主机号(每个网络可容纳2^24-2台主机),适用于超大型网络。 ②B类地址:前2位为10,IP范 阅读全文
posted @ 2018-01-28 11:12 Curo 阅读(648) 评论(0) 推荐(0) 编辑
摘要:TCP与UDP基本区别 1.基于连接与无连接 2.TCP要求系统资源较多,UDP较少; 3.UDP程序结构较简单 4.流模式(TCP)与数据报模式(UDP); 5.TCP保证数据正确性,UDP可能丢包 6.TCP保证数据顺序,UDP不保证 UDP应用场景: 1.面向数据报方式 2.网络数据大多为短消 阅读全文
posted @ 2018-01-26 20:45 Curo 阅读(208) 评论(0) 推荐(0) 编辑
摘要:大端(Big-Endian),小端(Little-Endian)以及网络字节序的概念在编程中经常会遇到,网络字节序(Network Byte Order)一般是指大端(Big-Endian,对大部分网络传输协议而言)传输,大端小端的概念是面向多字节数据类型的存储方式定义的,小端就是低位在前(低位字节 阅读全文
posted @ 2018-01-26 19:34 Curo 阅读(9752) 评论(0) 推荐(2) 编辑
摘要:windows socket网络基础详解(socket的流程介绍的很详细)http://blog.csdn.net/ithzhang/article/details/8448655 Windows Socket 非阻塞模式开发 http://blog.csdn.net/ithzhang/articl 阅读全文
posted @ 2018-01-26 19:32 Curo 阅读(160) 评论(0) 推荐(0) 编辑
摘要:本文转自:http://blog.csdn.net/snailset/article/details/26752435 题目: 小明先把硬币摆成了一个 n 行 m 列的矩阵。 随后,小明对每一个硬币分别进行一次 Q 操作。 对第x行第y列的硬币进行 Q 操作的定义:将所有第 i*x 行,第 j*y 阅读全文
posted @ 2018-01-26 18:53 Curo 阅读(618) 评论(0) 推荐(1) 编辑
摘要:http://blog.csdn.net/morewindows/article/details/7370155 阅读全文
posted @ 2018-01-26 17:55 Curo 阅读(100) 评论(0) 推荐(0) 编辑
摘要:本文转载于:http://blog.csdn.net/morewindows/article/details/7538247 来详细介绍常用的线程同步互斥机制——关键段、事件、互斥量、信号量。下面对它们作个总结,帮助大家梳理各个知识点。 首先来看下关于线程同步互斥的概念性的知识,相信大家通过前面的文 阅读全文
posted @ 2018-01-26 15:59 Curo 阅读(162) 评论(0) 推荐(0) 编辑
摘要:前面介绍了关键段CS、事件Event、互斥量Mutex在经典线程同步问题中的使用。本篇介绍用信号量Semaphore来解决这个问题。 首先也来看看如何使用信号量,信号量Semaphore常用有三个函数,使用很方便。下面是这几个函数的原型和使用说明。 第一个 CreateSemaphore 函数功能: 阅读全文
posted @ 2018-01-26 15:54 Curo 阅读(144) 评论(0) 推荐(0) 编辑
摘要:原文地址:http://blog.csdn.net/morewindows/article/details/7445233 上一篇中使用关键段来解决经典的多线程同步互斥问题,由于关键段的“线程所有权”特性所以关键段只能用于线程的互斥而不能用于同步。本篇介绍用事件Event来尝试解决这个线程同步问题。 阅读全文
posted @ 2018-01-26 15:19 Curo 阅读(173) 评论(0) 推荐(0) 编辑
摘要:第一篇 多线程笔试面试题汇总 本文转载于秒杀多线程系列,原博客地址:http://blog.csdn.net/morewindows/article/details/7392749 多线程在笔试面试中经常出现,下面列出一些公司的多线程笔试面试题。首先是一些概念性的问答题,这些是多线程的基础知识,经常 阅读全文
posted @ 2018-01-25 20:38 Curo 阅读(651) 评论(0) 推荐(0) 编辑
摘要:本文转载于:http://blog.csdn.net/sunxc123/article/details/7742982 在MFC程序中,使用CString来处理字符串是一个很不错的选择。CString既可以处理Unicode标准的字符串,也可以处理ANSI标准的字符串。CString的Format方 阅读全文
posted @ 2018-01-25 20:33 Curo 阅读(6518) 评论(0) 推荐(0) 编辑
摘要:在本例子中我们使用——beginThreadex这个函数,它和createThread的区别是: 为了方便管理,我么在使用该函数的时候可以把它的线程函数作为类成员,这也就需要在类中把该函数变成静态函数 1)如果你正在编写C/C++代码,决不应该调用CreateThread。相反,应该使用Visual 阅读全文
posted @ 2018-01-25 20:09 Curo 阅读(386) 评论(0) 推荐(0) 编辑
摘要:1.事件: (在信息交换函数中将控件的值与控件id进行绑定,这样我们就可以更新或者获取控件的值) 2.消息 https://www.cnblogs.com/itech/archive/2010/06/29/1767311.html 阅读全文
posted @ 2018-01-25 19:51 Curo 阅读(1762) 评论(0) 推荐(0) 编辑
摘要:本文转载于:http://blog.csdn.net/libaineu2004/article/details/40398405 1、线程分为UI线程和工作者线程,UI线程有窗口,窗口自建了消息队列,这个UI线程维护“消息队列”,“消息队列”是界面线程和工作者线程的最大区别。所以有用户界面的一般称为 阅读全文
posted @ 2018-01-25 14:07 Curo 阅读(1946) 评论(0) 推荐(1) 编辑
摘要:进程与线程的解析进程:一个正在运行的程序的实例,由两部分组成: 1.一个内核对象,操作系统用它来管理进程。内核对象也是系统保存进程统计信息的地方。 2.一个地址空间,其中包含所有可执行文件或DLL模块的代码和数据。此外,它还包含动态内存分配,比如线程堆栈和堆的分配。 进程要做任何事情,都必须让一个线 阅读全文
posted @ 2018-01-24 21:16 Curo 阅读(336) 评论(0) 推荐(0) 编辑
摘要:http://blog.csdn.net/x_iya/article/details/52592478 阅读全文
posted @ 2018-01-24 20:02 Curo 阅读(82) 评论(0) 推荐(0) 编辑
摘要:第五章 观察法 本文转载于http://blog.csdn.net/x_iya/article/details/8907978#t0 观察是解决一切问题的前提条件,仔细地观察对于解决问题起着十分重要的作用。观察思维法可以加深自己对问题基本条件的理解,缩短掌握问题关键的时间,从而很好地提高自己分析、解 阅读全文
posted @ 2018-01-24 19:58 Curo 阅读(1068) 评论(0) 推荐(0) 编辑
摘要:第四章 分析法 本文转载于http://blog.csdn.net/x_iya/article/details/8907978#t0 仔细地分析总是可以让人更加准确地得出问题的最佳答案。如果一个人有较强的分析思维能力,那么他便可以游刃有余地行走在自己的人生道路上。因为对他来讲,一切问题在他的分析之下 阅读全文
posted @ 2018-01-24 19:57 Curo 阅读(1836) 评论(0) 推荐(0) 编辑
摘要:第三章 排除法 本文转载于http://blog.csdn.net/x_iya/article/details/8907978#t0 很多时候,人应该学会用“排除思维法”来筛选最佳组合。运用排除思维,可以让自己少走曲折路、不走冤枉路,它可以让你在“必然性”中更快地找到自己所要的答案。 初级题: 97 阅读全文
posted @ 2018-01-24 19:55 Curo 阅读(5281) 评论(0) 推荐(0) 编辑
摘要:第一章 假设法 一个真实的假设往往可以让事实呈现眼前,让真理浮出水面。一个人如果做什么事都可以让其思维以这些假设前提为基础,那么他便能真真正正地活在NLP里而不会陷入困境,他的人生也就会有更大地进步和提升。 初级题: 1.如何问问题? 有甲、乙两人,其中,甲只说假话,而不说真话;乙则是只说真话,不说 阅读全文
posted @ 2018-01-24 19:53 Curo 阅读(1645) 评论(0) 推荐(0) 编辑
摘要:原博来自http://www.cnblogs.com/skywang12345/ 弗洛伊德算法介绍 和Dijkstra算法一样,弗洛伊德(Floyd)算法也是一种用于寻找给定的加权图中顶点间最短路径的算法。该算法名称以创始人之一、1978年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德命名 阅读全文
posted @ 2018-01-24 19:39 Curo 阅读(1561) 评论(0) 推荐(0) 编辑
摘要:什么是hash? wiki上的解释是这么说的: hash(散列、杂凑)函数,是将任意长度的数据映射到有限长度的域上。直观解释起来,就是对一串数据m进行杂糅,输出另一段固定长度的数据h,作为这段数据的特征(指纹)。 这句话也可以这么理解:HASH函数是这么一种函数,他接受一段数据作为输入,然后生成一串 阅读全文
posted @ 2018-01-23 17:41 Curo 阅读(788) 评论(0) 推荐(0) 编辑
摘要:OSI七层和TCP/IP四层的关系 1.1 OSI引入了服务、接口、协议、分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型。 1.2 OSI先有模型,后有协议,先有标准,后进行实践;而TCP/IP则相反,先有协议和应用再提出了模型,且是参照的OSI模型。 1.3 OSI是一种理论下 阅读全文
posted @ 2018-01-23 11:49 Curo 阅读(407) 评论(0) 推荐(0) 编辑
摘要:早的unix是开放的,很多组织对unix都有修改,期中比较有名的就是伯克利大学的修改版本,叫做bsd,是unix的分支,由于bsd的协议允许你直接使用\修改他的代码,并且可以作为商业用途,所以很多公司的unix都是从bsd衍生过来的,比如hp-unix,ibm的aix等等.linux呢,是一个完全没 阅读全文
posted @ 2018-01-23 10:53 Curo 阅读(140) 评论(0) 推荐(0) 编辑
摘要:题目:如何判断单链表里面是否有环? 方法一:快慢指针法 设两个工作指针,一个快一个慢,如果有环的话,它们会必然在某点相遇。 为什么当单链表存在环时,p和q一定会相遇呢? 假定单链表的长度为n,并且该单链表是环状的,那么第i次迭代时,p指向元素i mod n,q指向2i mod n。因此当i≡2i(m 阅读全文
posted @ 2018-01-22 19:57 Curo 阅读(1637) 评论(0) 推荐(0) 编辑
摘要:概念部分转载于http://blog.csdn.net/zwhlxl/article/details/45745825 问题描述 判断两个单链表是否相交,如果相交,给出相交的第一个点 一.两个链表都不存在环相交的 链表示意图如下所示。 解题思路 方法一 两个没有环的链表如果是相交于某一结点,如上图所 阅读全文
posted @ 2018-01-22 18:24 Curo 阅读(819) 评论(0) 推荐(0) 编辑
摘要:P01: 01背包问题 题目 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。 基本思路 这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。 用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可 阅读全文
posted @ 2018-01-22 15:46 Curo 阅读(1149) 评论(0) 推荐(0) 编辑
摘要:今天在网上看到一个讲动态规划的文章,是以01背包为例的,这文章和书上的讲解非常不一样,令我眼前一亮,于是转载一下下~~~附上原文地址:http://www.cnblogs.com/sdjl/articles/1274312.html通过金矿模型介绍动态规划 对于动态规划,每个刚接触的人都需要一段时间 阅读全文
posted @ 2018-01-22 13:12 Curo 阅读(155) 评论(0) 推荐(0) 编辑
摘要:1 //dp[i]=dp[i-vj]+1 2 #include 3 int main() 4 { 5 int dp[20]; 6 int money; 7 int useMoney[20];//这次找零,在原来的基础上需要的硬币 8 int value[]={0,2,4,5}; 9 int i,j; 10 while(~scan... 阅读全文
posted @ 2018-01-22 10:57 Curo 阅读(180) 评论(0) 推荐(0) 编辑
摘要:作者:Hawstein 作者:Hawstein 作者:Hawstein 出处:http://hawstein.com/posts/dp-novice-to-advanced.html 前言 本文翻译自TopCoder上的一篇文章: Dynamic Programming: From novice t 阅读全文
posted @ 2018-01-21 19:54 Curo 阅读(200) 评论(0) 推荐(0) 编辑
摘要:一.应用: 同样的,sunday算法也是在一个字符串中查找另一个字符串出现的首地址,是Daniel M.Sunday于1990年提出的,从销量上讲,Sunday>BM>KMP,是这类问题的最优解。在实用上,KMP算法并不比最简单的c库函数strstr()快多少,而BM算法则往往比KMP算法快上3-5 阅读全文
posted @ 2018-01-21 16:29 Curo 阅读(572) 评论(0) 推荐(0) 编辑
摘要:字符串匹配是我们经常遇到的问题,常规来想我们首先想到的是暴力匹配 暴力匹配算法 暴力匹配的思路,假设现在文本串S匹配到 i 位置,模式串P匹配到 j 位置,则有: 如果当前字符匹配成功(即S[i] == P[j]),则i++,j++,继续匹配下一个字符; 如果失配(即S[i]! = P[j]),令i 阅读全文
posted @ 2018-01-21 14:56 Curo 阅读(319) 评论(0) 推荐(0) 编辑
摘要:二叉树一共有4种遍历: 1.层次遍历(8-4-9-3-5-10) 2.前序遍历(8-4-3-5-9-10) 3.中序遍历(3-4-5-8-9-10) 4.后序遍历(3-5-4-10-9-8) 其中后三种遍历又分别分为递归遍历与非递归遍历,我们重点说非递归遍历。 非递归前序遍历 思路:判断节点非空 打 阅读全文
posted @ 2018-01-20 22:09 Curo 阅读(243) 评论(0) 推荐(0) 编辑
摘要:要求:给出一组数据,根据这组数据创建完全二叉树。 首先,我们知道,数组下标的范围是0到n-1,而在树中编号是从1开始的,下标的范围是1到n; 根据二叉树的性质(将一个完全二叉树按照从上到下,从左到右进行编号,其编号为i的节点,如果满足2*i<=n,则说明编号为i的节点有左孩子,否则没有,如果满足2* 阅读全文
posted @ 2018-01-20 15:17 Curo 阅读(12291) 评论(0) 推荐(1) 编辑
摘要:1.python 中的 and 从左到右计算表达式,若所有值均为真,则返回最后一个值,若存在假,返回第一个假值; or 也是从左到有计算表达式,返回第一个为真的值; 其中数字 0 是假,其他都是真; 字符 "" 是假,其他都是真; 元组中的元素值是不允许修改的,但我们可以对元组进行连接组合 元组中的 阅读全文
posted @ 2018-01-19 17:43 Curo 阅读(1400) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2018-01-18 22:13 Curo 阅读(225) 评论(0) 推荐(0) 编辑
摘要:问题描述 杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。 它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。 下面给出了杨辉三角形的前4行: 1 1 1 1 2 1 1 3 3 1 给出n,输出它的前n行。 杨辉三角形又称Pascal三角形,它的第i+1行 阅读全文
posted @ 2018-01-18 13:10 Curo 阅读(793) 评论(2) 推荐(0) 编辑
摘要:问题描述 123321是一个非常特殊的数,它从左边读和从右边读是一样的。 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。 输入格式 输入一行,包含一个正整数n。 输出格式 按从小到大的顺序输出满足条件的整数,每个整数占一行。 样例输入 52 样例输出 899998 阅读全文
posted @ 2018-01-18 11:51 Curo 阅读(222) 评论(0) 推荐(0) 编辑
摘要:相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用。但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯定的。也许有人会说,即使不用MFC框架,也可以想办法使用MFC中的API,具体的操作方法在本文最后给 阅读全文
posted @ 2018-01-17 18:41 Curo 阅读(226) 评论(0) 推荐(0) 编辑
摘要:头文件string与string.h的区别 在C++中,#include<iostream>与#include<iostream.h>的区别,前者要使用更新的编译器(其实大部分编译器多比较前卫了,出了有些搞嵌入式的用变态的编译器)。 喔,原来iostream是C++的头文件,iostream.h是C 阅读全文
posted @ 2018-01-17 18:36 Curo 阅读(19972) 评论(1) 推荐(1) 编辑
摘要:问题描述 给定n个十六进制正整数,输出它们对应的八进制数。输入格式 输入的第一行为一个正整数n (1<=n<=10)。 接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式 输出n行,每行为输入对应的八进制正整数。 【注 阅读全文
posted @ 2018-01-17 18:25 Curo 阅读(427) 评论(0) 推荐(0) 编辑
摘要:1 阅读全文
posted @ 2018-01-14 21:26 Curo 阅读(109) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示