- 博客(11)
- 资源 (1)
- 收藏
- 关注
原创 extern 关键字详解
1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名而不是
2014-12-15 22:10:03
707
原创 Linux shell 编程入门
从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在Linux GUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用。深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修 功课之一。Linux
2014-12-11 21:23:30
523
转载 C++拷贝构造函数(深拷贝,浅拷贝)
对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。
2014-11-25 12:14:17
566
原创 TCP:经受时延的Ack
通常TCP在接收到数据时并不立即发送ACK;相反,会推迟发送,以便将ACK与需要沿该方向发送的数据一起发送(有时称这种现象为稍带ACK)。绝大多数实现采用的时延为200ms,也就是说,TCP将以最大200ms的时延等待是否有数据一起发送。 如果接收端在从收到数据开始200ms定时器超时之后还是没有数据需要向对端发送的话,这时TCP收端才会单独向对端发送一个A
2014-03-28 22:58:25
1136
原创 TCP:半关闭
何为半关闭?TCP提供了连接的一端在结束它的发送后还能接收来自另一端数据的能力。这就是所谓的半关闭。怎么使用半关闭?为了使用这个特性,编程接口必须为应用程序提供一种方式来说明“我已经完成了数据 传送,因此发送一个文件结束( F I N)给另一端,但我还想接收另一端发来的数据,直到它给 我发来文件结束( F I N) ”。 如果应用程序不调用c l o s e而调用s h u
2014-03-26 16:47:10
3183
原创 TCP:三次握手/四次握手
socket 中TCP的三次握手建立连接详解我们知道tcp建立连接要进行“三次握手”,即交换三个分组。大致流程如下:客户端向服务器发送一个SYN J服务器向客户端响应一个SYN K,并对SYN J进行确认ACK J+1客户端再想服务器发一个确认ACK K+1只有就完了三次握手,但是这个三次握手发生在socket的那几个函数中呢?请看下图:图1、socket中发送的TCP三次
2014-03-26 15:18:39
1089
原创 协议头详解一:TCP首部
TCP数据被封装在一个IP数据报中,如下图: TCP在IP数据报中的封装TCP的首部数据格式,如不计选项字段,它通常是20个字节,如下图:
2014-03-25 00:00:51
1812
原创 协议头详解二:UDP
UDP的首部各字段如下图所示:UDP首部端口号:表示发送进程和接收进程。UDP长度字段:指的是 UDP首部和UDP数据的字节长度。该字段的最小值为 8字节(发送一 份0字节的UDP 数据报是 O K) 。这个 UDP 长度是有冗余的。 I P 数据报长度指的是数据报全长,此UDP 数据报长度是全长减去IP首部的长度(该值在首部长度字段中指定) 。
2014-03-23 23:41:55
957
原创 协议头详解一:IP及IP分片
写在前面 I P是T C P / I P协议族中最为核心的协议。所有的 T C P、U D P、I C M P及I G M P数据都以I P数据 报格式传输 。许多刚开始接触 T C P / I P的人对 I P 提供不可靠、无连接的数据报传送服务感到很奇怪,特别是那些有 X . 2 5或S N A背景知识的人。 不可靠( u n r e l i a b
2014-03-23 23:31:28
1376
原创 TCP:SEQ号与ACK号
三次握手Three-way Handshake一个虚拟连接的建立是通过三次握手来实现的1. (B) –> [SYN] –> (A)假如服务器A和客户机B通讯. 当A要和B通信时,B首先向A发一个SYN (Synchronize) 标记的包,告诉A请求建立连接.注意: 一个 SYN包就是仅SYN标记设为1的TCP包(参见TCP包头Resources). 认识到这点很重要,只有
2014-03-21 23:59:35
18822
3
转载 TCP/IP网络编程的四书五经
[本文发表于《程序员》杂志2003年第12期,作者孟岩] TCP/IP协议是当前广域网和局域网通用的网络协议,因此,基于TCP/IP的编程就格外重要。从应用上来说,现在直接利用C层次Socket API进行TCP/IP编程的人确实越来越少了,各种现成的框架(如ACE、Java、.NET FCL)和控件(如IP*Works)大大简化了TCP/IP编程的难度。但是,如果想
2014-03-20 22:59:04
849
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人