自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jiange_zh的博客

持之以恒,不乱节奏

  • 博客(46)
  • 资源 (1)
  • 收藏
  • 关注

原创 《UNIX网络编程》UDP网络编程基础

udp是无连接的,对于服务器,它只需要创建套接字,并绑定到地址:端口上,然后等待接收消息到来,对于客户端,只需要创建套接字然后向服务器发送消息。udp服务器一般是迭代的。下面是一个使用udp的简单echo程序:/* *udp_server.c */#include <stdio.h>#include <stdlib.h>#include <strings.h>#include <sys/

2015-12-30 19:33:44 682

原创 《UNIX网络编程》TCP网络编程基础(2)

在上一篇中,我们编写了一个简单的TCP服务器/客户端程序,初步探讨了一些问题,本文将进一步优化该程序,使我们的程序更加健壮。问题提出我们的服务器阻塞于accept时,如果被信号中断了,将会返回一个错误,有些内核会自动重启被中断的系统调用,但为了可移植性,我们必须对慢系统调用返回EINTR有所准备。服务器关闭后,客户端由于阻塞在read上,不能及时收到服务器关闭的通知.close存在两点限制(代

2015-12-29 20:20:20 492

原创 《UNIX网络编程》TCP网络编程基础(1)

最近发现只看书不打代码真的不行,所以还是决定自己把代码敲一遍,加深印象!实验内容:服务器和客户端通过tcp通信;客户端从标准输入获得字符串,发送给服务器;服务器统计收到的字符串长度,将结果返回给客户端;客户端显示服务器返回的结果。源代码:/* * tcp_server.c */#include <stdio.h>#include <stdlib.h>#include <strings.h>

2015-12-29 14:54:02 632

原创 【C语言】g++常用编译选项备忘

g++常用编译选项小结不加参数: gcc test.c 生成可执行文件 a.out (默认生成可执行文件)-o : 生成指定的文件名 (例子: gcc -o test test.c , 生成可执行文件 test )-c : 生成目标文件 (例子: gcc -c test.c , 生成目标文件 test.o )-c -o : 生成指定文件名的目标文件 (例子: gcc -c -o hello.o t

2015-12-28 21:52:37 1196

原创 《TCP/IP详解 卷1:协议》 读书笔记 第23章 TCP的保活定时器

第23章 TCP的保活定时器因为TCP是面向连接的,所以就会出现只连接不传送数据的“半开放连接”,服务器要检测到这种连接并且在某些情况下释放这种连接,这就是保活定时器的作用。其时限根据服务器的实现不同而不同。如果一个给定的连接在2小时内没有任何动作,那么服务器就向客户发送一个探查报文段.客户主机必须处于以下4个状态之一:(1)客户主机依然正常运行,并从服务器可达.客户的TCP响应正常,而服务器也知道

2015-12-27 10:21:27 915

原创 《TCP/IP详解 卷1:协议》 读书笔记 第22章 TCP的坚持定时器

第22章 TCP的坚持定时器1.前言TCP不对ACK报文段进行确认,如果一个ACK丢失了,接收方等待接收数据(因为它已经向发送方通告了一个非0的窗口),而发送方等待允许它继续发送数据的窗口更新。为防止这种死锁,发送方使用坚持定时器(persist timer)来周期性向接收方询查窗口是否已增大。(发出的报文段叫做窗口探查,window probe)2.坚持定时器当TCP服务器收到了客户端的0滑动窗口

2015-12-27 10:10:08 865

原创 《TCP/IP详解 卷1:协议》 读书笔记 第21章 TCP的超时与重传

第21章 TCP的超时与重传1.前言对每个连接, TCP管理4个不同的定时器。1.重传定时器适用于当希望收到另一端的确认。2.坚持(persist)定时器使窗口大小信息保持不断流动,即使另一端关闭了其接收窗口。3.保活(keepalive)定时器可检测到一个空闲连接的另一端何时崩溃或重启。4.2MSL定时器测量一个连接处于TIME_WAIT状态的时间。超时重传是TCP协议保证数据可靠性的一个重要机制

2015-12-26 23:13:42 1790

原创 utips面试小记

前阵子看到utips团队在招新,最近看了很多书,可是苦于不知道如何投入实践,没有实践看完之后很快就忘了,也不能有深入的理解。于是投了简历,希望能有机会去实践一下(招聘分为兼职和全职,全职包括实习生和正职),投的是兼职岗,因为还有一些课程(而且盘算着明年春招去试一试腾讯等大公司的实习生招聘)。很快投了简历一两天就接到面试的通知。突然有点慌了,算法/数据结构/操作系统/计算机网络,虽然之前都学的还行,但

2015-12-26 00:08:10 2314

原创 《TCP/IP详解 卷1:协议》 读书笔记 第二十章 TCP的成块数据流

第二十章 TCP的成块数据流1.引言目前建立在TCP协议上的网络协议特别多,有telnet,ssh,有ftp,有http等等。这些协议又可以根据数据吞吐量来大致分成两大类:(1)交互数据类型,例如telnet,ssh,这种类型的协议在大多数情况下只是做小流量的数据交换,比如说按一下键盘,回显一些文字等等。(2)数据成块类型,例如ftp,这种类型的协议要求TCP能尽量的运载数据,把数据的吞吐量做到最大

2015-12-25 16:34:42 1148 2

原创 《TCP/IP详解 卷1:协议》 读书笔记 第十九章 TCP的交互数据流

第十九章 TCP的交互数据流1.前言在TCP进行数据传输时,可以分为成块数据流和交互数据流两种,且处理的算法不同.2.交互式输入例子:在一个Rlogin连接上键入一个交互命令所产生的数据流(每一个交互按键都会产生一个数据分组)。 (下面我们将看到,第二,三个报文段是可以合并的)3.经受时延的确认按键确认和按键回显两个报文段合并在一起发送,这种技术叫做经受时延的确认。通常TCP在接收到数据时并不

2015-12-24 10:54:51 785

原创 《UNIX网络编程》 第三章 套接字编程简介

一.套接字地址结构IPv4的地址结构为sockaddr_in,IPv6为sockaddr_in6,链路协议sockaddr_dl,Unix域为sockaddr_un,存储为sockaddr_storage。**套接字地址结构总是以引用形式来传递!1.IPv4struct in_addr{in_addr_t s_addr; // 32比特的IPv4地址,网络字节序// 需要函数将点分十进制的地址转化为

2015-12-22 21:11:06 677

原创 《TCP/IP详解 卷1:协议》 读书笔记 第十八章 TCP连接的建立与终止

第十八章 TCP连接的建立与终止1.前言TCP连接的建立可以简单的称为三次握手,而连接的中止则可以叫做四次挥手。2.TCP的建立,终止以及半关闭TCP的建立比较熟悉,在此不赘述。由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据

2015-12-21 12:07:33 1663

原创 UNIX线程与进程

进程与线程有根本上的不同。每个进程有其独立的数据空间,文件描述符以及进程的ID。而线程共享一个数据空间,文件描述符以及进程ID。一些重要概念:1.共享数据空间多个线程可以轻易地读取到这个共享的数据集。在读取上,一般不会出现问题,但是涉及到数据的修改时,就需要考虑一系列问题了。2.共享的文件描述符在fork原语被调用之后,文件描述符将被复制,从而子进程得到一套全新的文件描述符,子进程关闭某一从父进程继

2015-12-21 10:34:11 1046

原创 《apue》 首次拜读完经典之作,两三记录

学习Linux编程,无疑《apue》是必读的。在读完《鸟哥的linux私房菜》之后,我对linux系统有了整体的了解和感知,也感受到了linux与windows的不同。之后遵循前辈们的建议选择了《APUE》,《UNP》,《TCP/IP详解》等经典之作来提升自己。读《APUE》,起初的感受就是:函数太多了,根本记不住!师兄说,这本书用来当做工具书就好,在读《UNP》的时候多查阅,熟练起来就好。首先,这

2015-12-21 10:06:20 25366 13

原创 【Unix/Linux编程实践】DIY简单web服务器

一.服务器的设计问题:DIY or 代理1.DIY——服务器接收请求,自己处理工作——用于快速简单的任务;2.代理——服务器接收请求,然后创建一个新进程来处理工作——用于慢速的更加复杂的任务。二.web服务器功能常用的3种用户操作:1.列举目录信息;2.cat文件;3.运行程序请求处理: 目录:显示目录列表 文件:显示内容 .cgi文件:运行

2015-12-19 15:55:00 1908

原创 《TCP/IP详解 卷1:协议》 读书笔记 第十七章 TCP:传输控制协议

第十七章 TCP:传输控制协议1.TCP的服务TCP提供了一种面向连接的,可靠的字节流服务。面向连接意味着双方在交换数据之前需要建立一个tcp连接,这跟打电话很类似,需要先拨号振铃,接通后才可以对话。TCP通过下列方式来提供可靠性:• 应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的数据报长度将保持不变。由TCP传递给IP的信息单位称为报文段或段(segment);•

2015-12-19 11:30:49 1377

原创 【Linux】僵尸进程的检测,清理和避免

一.僵尸进程的产生一个进程终止的方法很多,进程终止后有些信息对于父进程和内核还是很有用的,例如进程的ID号、进程的退出状态、进程运行的CPU时间等。因此进程在终止时,回收所有内核分配给它的内存、关闭它打开的所有文件等等,但是还会保留以上极少的信息,以供父进程使用。父进程可以使用 wait/waitpid 等系统调用来为子进程收拾,做一些收尾工作。因此,一个僵尸进程产生的过程是:父进程调用fork创建

2015-12-19 10:27:47 7959

原创 【Unix/Linux编程实践】编写时间服务器(使用Socket)

一.服务端相关系统调用:socket:获得一个套接字,SOCK_STREAM为tcp,最后一个参数protocol指的是内核中网络代码所使用的协议,0代表选择标准的协议。bind:将套接字绑定到(地址,端口号)上listen:开启对套接字的监听,参数sockid为接收请求的socket,参数qsize为允许接入连接的数目accept:从连接请求队列中获得连接信息,创建新的套接字,并返回该套接字的文件

2015-12-17 09:42:38 980

原创 【并行计算】前缀和并行思路

一.定义如果给定一个数列a[n],令S[k] = a[0]+a[1]+…+a[k],(k = 0, 1, 2…n-1),数列S[k]即为数列a[n]的前缀和。二.串行算法很容易就能想到串行的算法:S[0] = a[0];for (int i = 1; i < n; i++) S[i] = S[i-1] + a[i];三.并行算法我们用一个实际的例子来说明本问题的并行解题思路。假设有4个处理

2015-12-16 16:49:58 5866

原创 【Unix/Linux编程实践】用管道实现双向通信—以bc计算器为例

前言几乎每个版本的Unix都包含bc计算器。事实上,大多数版本的bc只分析输入,然后在内部启动了dc计算器程序,并通过管道与其通信。dc是一个基于栈的计算器,它接收逆波兰表达式,执行运算后将结果送到标准输出。bc从连接到dc标准输出的管道上读取结果,再把结果转发给用户。事实上,bc为我们提供了用户界面,并使用dc提供的服务。这是一个简单的客户/服务器模型。bc/dc对被称为协同进程(coroutin

2015-12-16 12:48:11 1002

原创 CCF 201503-4 网络延时 (树的直径)

问题描述  给定一个公司的网络,由n台交换机和m台终端电脑组成,交换机与交换机、交换机与电脑之间使用网络连接。交换机按层级设置,编号为1的交换机为根交换机,层级为1。其他的交换机都连接到一台比自己上一层的交换机上,其层级为对应交换机的层级加1。所有的终端电脑都直接连接到交换机上。   当信息在电脑、交换机之间传递时,每一步只能通过自己传递到自己所连接的另一台电脑或交换机。请问,电脑与电脑之间传递消

2015-12-14 22:46:53 1113

原创 CCF 201312-4 有趣的数(数位DP)

一.问题描述  我们把一个数称为有趣的,当且仅当:   1. 它的数字只包含0, 1, 2, 3,且这四个数字都出现过至少一次。   2. 所有的0都出现在所有的1之前,而所有的2都出现在所有的3之前。   3. 最高位数字不为0。   因此,符合我们定义的最小的有趣的数是2013。除此以外,4位的有趣的数还有两个:2031和2301。   请计算恰好有n位的有趣的数的个数。由于答案可能非

2015-12-14 21:18:04 1780

原创 【Unix/Linux编程实践】理解I/0重定向和管道

一.3个标准文件描述符0:stdin1:stdout2:stderr通过shell命令行运行Unix系统工具时,stdin,stdout,stderr连接在终端上,因此,工具从键盘读取数据,并把输出和错误消息写到屏幕。二.重定向I/O的是shell而不是程序shell并不把重定向标记和文件名传递给程序;重定向可以出现在命令行中的任何地方,且重定向标识符周围并不需要空格来区分。*最低可用文件描述符原则

2015-12-13 11:01:16 1039

原创 《TCP/IP详解 卷1:协议》 读书笔记 第十五章 TFTP:简单文件传送协议

第十五章 TFTP:简单文件传送协议TFTP适合于只读存储器,仅用于无盘系统进行系统引导,是一种停等协议。因为UDP在一个客户与一个服务器之间并不提供唯一连接,TFTP服务器通过为每个客户提供一个新的UDP端口来提供并发。TFTP没有提供安全特性,所以需要系统管理员来限制客户的访问。

2015-12-12 15:31:49 786

原创 《TCP/IP详解 卷1:协议》 读书笔记 第十一章 UDP:用户数据报协议

第十一章 UDP:用户数据报协议1.引言UDP封装: 20字节IP首部+8字节UDP首部+UDP数据2.UDP首部 端口号表示发送进程和接收进程. UDP长度指UDP首部和数据的总长度. UDP检验和覆盖UDP首部和数据.(不包括伪首部) UDP伪首部包含了IP首部的一些字段,只在计算UDP校验和时使用,并不实际存在.3.UDP检验和UDP校验和包含UDP伪首部,UDP首部和数据,如果数

2015-12-12 15:09:54 1255

原创 【Unix/Linux编程实践】shell如何运行程序—编写命令解析器sh

1.shell是如何运行程序的?shell由下面的循环组成:while (!end_of_input) getcommand execute command wait for command to finish我们可以实际用一下shell:jiange@jiange-Inspiron:~/cpp$ lsoverride override.cpp test test1.

2015-12-07 23:22:15 3021

原创 【C++】一道考察重载、覆盖、多态的题目

代码:#include <iostream>#include <string>using namespace std;class A{protected: int m_data;public: A(int data = 0) { m_data = data; } int GetData() { return

2015-12-07 20:11:41 1618

原创 【Unix/Linux编程实践】文件系统:编写pwd

知识点目录是一个包含文件名与i-节点对的列表的文件。”文件在目录中“的含义:目录中存放的只是文件在i-节点表的入口,而文件的内容则存储在数据区中。例如,“文件x在目录a中”意味着在目录a中有一个指向文件x的i-节点的链接,这个链接所附加的文件名为x。pwd:用来显示到达当前目录的路径。pwd的工作过程得到“.”(当前目录)的i-节点号,称其为n(使用stat);chdir .. (使用chdir

2015-12-06 23:33:04 854

原创 【算法设计与数据结构】URAL 1152.False Mirrors(状态压缩dp+dfs)

题目链接http://acm.timus.ru/problem.aspx?space=1&num=1152题目大意n个阳台(3<=n<=20)围成一个圈,每个阳台里有若干只怪兽(1~100)。中间有一个勇士,他每次开炮摧毁阳台i,则与i相邻的2个阳台也会跟着被摧毁(第一个阳台与第n个阳台是相邻的),摧毁后相应阳台里的怪兽都会死去。每一次开炮之后,幸存的怪兽会对他展开一次反击,每只怪兽会对他造成1点伤

2015-12-06 20:57:02 879

原创 【算法设计与数据结构】为何程序员喜欢将INF设置为0x3f3f3f3f?

在算法竞赛中,我们常常需要用到一个“无穷大”的值,对于我来说,大多数时间我会根据具体问题取一个99999999之类的数(显得很不专业啊!)在网上看别人代码的时候,经常会看到他们把INF设为0x7fffffff,奇怪为什么设一个这么奇怪的十六进制数,一查才知道,因为这是32-bit int的最大值。如果这个无穷大只用于一般的比较(比如求最小值时min变量的初值),那么0x7fffffff确实是一个完美

2015-12-06 20:53:46 41833 22

原创 【Unix/Linux编程实践】从零做起:编写who命令

《Unix/Linux编程实践教程》着实有意思。通常我们要做一件事情,会想着先储备足够的知识再来动手。但繁杂的知识往往成为一个问题,因此快速的学习能力显得尤为重要。说这本书有意思,是因为作者不是一上来就把知识点罗列出来,而是教我们如何一步步去获得我们需要的信息or知识。下面我们看看怎样从零开始,编写一个简单的who命令!1.who命令能够做什么?#首先,实际使用一下~$ who#查看联机帮助$

2015-12-06 13:36:04 890

原创 【Unix/Linux编程实践】 动手实现简单的more

最近都在看一些理论方面的书,缺乏实践真的是云里雾里的,于是今天开始看《Unix/Linux编程实践教程》,理论实践相结合!自己动手来实现linux的一些功能,确实挺有趣的,而且还能加深对系统的理解~版本一/*more01.c *read and print 24 lines then pause for a few special commands */#include <stdio.h>#de

2015-12-06 12:33:49 1012 1

原创 《TCP/IP详解 卷1:协议》 读书笔记 第十章 动态选路协议

第十章 动态选路协议1.引言上一章讲的是静态选路:通过默认方式生成路由表项(对于直接连接的接口),并通过route命令增加表项,或者通过ICMP重定向生成表项。本章讨论动态选路,它用于路由器间的通信。包括 RIP, OSPF, BGP 以及 CIDR。2.动态选路路由器上有一个路由守护程序,它运行选路协议,并与相邻的一些路由器通信,然后根据收到的信息更新内核中的路由表——这个过程是动态的。Inter

2015-12-05 16:50:07 1088

原创 【设计模式】策略模式——以商场促销为例

本文内容参考自《大话设计模式》(程杰 著)注:以下代码为java实现版本1需求:做一个商场收银软件,营业员根据客户所购买商品的单价和数量,向客户收费。关键代码:public class Cash{ private double total = 0; public void submit(int num, double price) { double t

2015-12-04 14:25:42 7306 1

原创 【设计模式】简单工厂模式——以一个简单的计算器为例

本文内容参考自《大话设计模式》(程杰 著)1.拙劣的代码class Program{ static void Main(string[] args) { Console.Write("请输入数字A:"); string A = Console.ReadLine(); Console.Write("请选择运算符号(+、-、*、/):");

2015-12-04 13:51:04 6915 1

原创 《apue》读书笔记 停止更新

最近博文大多都是读书笔记(有点像在抄书哈哈)~很多知识都是书里的概念。第一次读APUE,还不能有很深的理解,目前还知识理论性地读,未能很好地结合实践,所以很少有自己的理解,一方面为提高博文质量,另一方面减少工作量,本书的读书笔记暂不更新了,我会直接在纸质书上标注,想必这本书读一次是不够的,以后还会再次拜读,到时有自己的深刻理解后,再发文分享~

2015-12-04 09:32:07 840

原创 《TCP/IP详解 卷1:协议》 读书笔记 第九章 IP选路

第九章 IP选路1.引言需要进行选路的数据报可以由本地主机产生,也可以由其他主机产生。在后一种情况下,主机必须配置成一个路由器,否则通过网络接口接收到的数据报,如果目的地址不是本机就要被丢弃。2.选路原理IP搜索路由表的几个步骤:1) 搜索匹配的主机地址;2) 搜索匹配的网络地址;3) 搜索默认表项(默认表项一般在路由表中被指定为一个网络表项,其网络号为 0)。××匹配主机地址步骤始终发生在匹配网络

2015-12-04 09:14:35 884

原创 《TCP/IP详解 卷1:协议》读书笔记 第八章 Traceroute程序

第八章 Traceroute程序1.引言Traceroute程序可以让我们看到IP数据报从一台主机传到另一台主机所经过的路由。 (尽管不能保证从源端发往目的端的两份连续的IP数据报具有相同的路由,但是大多数情况下是这样的。)Traceroute程序还可以让我们使用IP源路由选项。2.Traceroute程序的操作traceroute程序使用ICMP报文和IP首部的TTL字段来实现。运行原理: (

2015-12-03 21:42:15 893

原创 【django】Nginx+uWSGI+Django部署我的博客网站

一.前言我们通常将nginx作为服务器最前端,它将接收WEB的所有请求,统一管理请求。然后nginx把所有静态请求自己来处理(这是NGINX的强项),并将将所有非静态请求通过uwsgi传递给Django,由Django来进行处理,从而完成一次WEB请求。可见,uwsgi的作用就类似一个桥接器。二.工作环境Ubuntu14.04 LTSDjango1.8三.安装,测试uwsgi$ export LDF

2015-12-03 17:54:04 900

原创 《TCP/IP详解 卷1:协议》 读书笔记 第七章 Ping程序

第七章 Ping程序1.引言Ping程序用来测试另一台主机是否可达。该程序发送一份ICMP回显请求报文给主机,并等待返回ICMP回显应答。一般来说,如果不能Ping到某台主机,那么就不能Telnet或者FTP到那台主机(当然,有特殊情况)。反过来,如果不能Telnet到某台主机,那么通常可以用Ping程序来确定问题出在哪里。Ping程序还能测出到这台主机的往返时间,以表明该主机离我们有“多远”。2.

2015-12-02 14:05:14 1101

数学建模MATLAB算法大全

算法大全第01章__线性规划.pdf 算法大全第02章 整数规划.pdf 算法大全第03章_非线性规划.pdf 算法大全第04章__动态规划.pdf 算法大全第05章__图与网络.pdf 算法大全第06章_排队论.pdf 算法大全第07章_对策论.pdf 算法大全第08章__层次分析法.pdf 算法大全第09章_插值与拟合.pdf 算法大全第10章_数据的统计描述和分析.pdf 算法大全第11章_方差分析.pdf 算法大全第12章_回归分析.pdf 算法大全第13章_微分方程建模.pdf 算法大全第14章_稳定状态模型.pdf 算法大全第15章_常微分方程的解法.pdf 算法大全第16章_差分方程模型.pdf 算法大全第17章_马氏链模型.pdf 算法大全第18章_变分法模型.pdf 算法大全第19章_神经网络模型.pdf 算法大全第20章_偏微分方程的数值解.pdf 算法大全第21章_目标规划.pdf 算法大全第22章__模糊数学模型.pdf 算法大全第23章__现代优化算法.pdf 算法大全第24章_时间序列模型.pdf 算法大全第25章__存贮论.pdf 算法大全第26章__经济与金融中的优化问题.pdf 算法大全第27章__生产与服务运作管理中的优化问 算法大全第28章__灰色系统理论及其应用.pdf 算法大全第29章_多元分析.pdf 算法大全第30章__偏最小二乘回归.pdf 算法大全附录一__Matlab入门.pdf 算法大全附录二__Matlab在线性代数中的应用.pdf 算法大全参考文献.pdf

2015-09-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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