Welcome 微信登录

首页 / 软件开发 / C++

TCP/IP学习笔记(1)

TCP/IP学习笔记(1)

TCP/IP学习笔记(1)2010-04-03肖进一、TCP/IP结构:TCP/IP是一个四层协议,结构如下:1、应用层:各种应用程序和协议,如Http、FTP等。2、传输层:TCP和UDPTCP提供一种可靠的运输层服务,但UDP是不可靠的,不能保证数据报到正确到达目的地。3、网络层:IP、IGMP、ICMPIP提供的是一种不可靠的服务,也就是尽可能块地把分组从源节点送到目的节点,但并不提供任何可靠性保证。ICMP是IP的附属协议,主要用来交换错误报文,I...
C/C++中一个简单的enum手法(idiom)

C/C++中一个简单的enum手法(idiom)

C/C++中一个简单的enum手法(idiom)2011-04-21 csdn博客 编程随想今天写程序的时候,又用到这个idiom了,于是顺便贴出来。这个idiom蛮简单的,估计很 多人都用过。今天主要是贴出来给新手参考(老手们就甭费时看此帖了)。为了说明这个手法具体该咋用,咱举一个简单的例子来说事儿。比方说要开发一个网络程 序,其中需要统计各种网络协议的数据包数量。★版本1假设一开始只需要处理HTTP和FTP两种协议。有些同学不假思索,立即会声明如下两个...
UDP实现简单的超时重传

UDP实现简单的超时重传

UDP实现简单的超时重传2011-04-21 51cto hello_world众所周知~UDP是一个无连接协议,因此靠它来传输的话是不可靠的,即使是数据包丢失 也不会报错。但是,在编写Linux上的socket程序时,却可以用简单的方法,在应用层实现超时 重传,让UDP可靠一些。(这次说的方法最好用于两个程序间通信——也许只能用 于两台机器通信)首先~我介绍一下Linux下,I/O操作的阻塞模式:在Linux下,I/O 操作有四种...
GetClientRect和GetWindowRect封装

GetClientRect和GetWindowRect封装

GetClientRect和GetWindowRect封装2011-04-21 博客园 众生皆苦做GUI程序设计,经常需要获取窗口的大小,典型的代码示例如下:CRect rcSize;::GetClientRect( hWnd, rcSize );这段代码获取了hWnd窗口客户区的大小.用的多了,就觉得每次都要事先声明一个临时 CRect变量很影响代码的美观,如果您也有同感的话那么如下封装可能会适合你:class CClientRect : public ...
TCP/IP学习笔记(4)

TCP/IP学习笔记(4)

TCP/IP学习笔记(4)2010-04-03肖进一、UDP协议UDP 是一个简单的面向数据报的运输层协议,进程的每个输出操作都产生一个UDP数据报,并组装成一份待发送的IP数据报。UDP不提供可靠性。UDP封装格式:IP首部(20)UDP首部(8)UDP数据1、UDP首部:16位源端口号16位目的端口号16位UDP长度16位UDP检验和数据(如果有)端口号表示发送和接收的进程。UDP长度字段指的是UDP首部和UDP数据的字节长度,该字段的最小值是8,表示...
TCP/IP学习笔记(5)

TCP/IP学习笔记(5)

TCP/IP学习笔记(5)2010-04-03肖进一、DNS系统1、DNS的授权:网络信息中心NIC负责分配顶极域和委派其他指定地区域的授权机构。一个独立管理的DNS子树称为一个区域,许多二极域将他们的子域划分为更小的区域。当一个系统加入到一个区域中时,该区域的DNS管理者为该新系统申请一个域名和一个IP地址,并将他们加入到名字服务器的数据库中。一个名字服务器负责一个或多个区域,一个区域的管理者必须为该区域提供一个主名字服务器和至少一个辅助名字服务器。每个...
C++/CLI的用途

C++/CLI的用途

C++/CLI的用途2011-04-21局部变量作为一个有着正常审美观的人,我简直无法忍受C++/CLI(以及managed c++)的丑陋。不 过,近来发现,这个丑东西也还有点用,在把原生开发接口包装成托管开发接口时,比C#的 互操作容易的多(互操作看了看,头大呀)。磕磕绊绊几天,终于把一个SDK开发包转换完成 了。总结经验如下:1. 对于clr中的引用类型,定义变量时要用个^符,如"String^ var1"、 "arra...
TCP/IP学习笔记(6)

TCP/IP学习笔记(6)

TCP/IP学习笔记(6)2010-04-03肖进一、TCP协议1、TCP 通过以下方式提供可靠性:◆ 应用程序分割为TCP认为最合适发送的数据块。由TCP传递给IP的信息单位叫做报文段。◆ 当TCP发出一个报文段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能记时收到一个确认,它 就重发这个报文段。◆ 当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常延迟几分之一秒。◆ TCP将保持它首部和数据的检验和。这是...
TCP/IP学习笔记(7)

TCP/IP学习笔记(7)

TCP/IP学习笔记(7)2010-04-03肖进一、SNMP:简单网络管理协议基于TCP/IP的网络管理包括两部分:网络管理站(manager)和被管理的网络单元(被管设备)。这些被管设备的共同点就是都运行TCP/IP协议。管理进程和代理进程之间的通信有两种方式,一种是管理进程向代理进程发出请求,询问参数值,另一种方式是代理进程主动向管理进程报告某些重要的事件。基于TCP/IP的网络管理包含3个组成部分:(1)一个管理信息库(MIB)。管理信息库包含所有...
TCP/IP学习笔记(8)

TCP/IP学习笔记(8)

TCP/IP学习笔记(8)2010-04-03肖进一、FTP:文件传输协议1、FTP协议:采用2个TCP连接来传输一个文件。(1)控制连接:控制连接通常以客户服务器方式建立。控制连接始终等待客户与服务器的通信,该连接将命令从客户端传给服务器,并传回服务器的应答。(2)数据连接:该连接用于数据传输。2、数据表示:(1)文件类型:◆ASCII文件:默认以NVT ASCII形式传输。这要求发送方将本地文本文件转换为NVT ASCII码,而接收方将NVT ASCI...
C++常量指针和指针常量

C++常量指针和指针常量

C++常量指针和指针常量2011-04-281、常量指针指向常量的指针变量的定义和使用如:const int *p;2、指针常量如:char* const p = "abcde";可以这么理解:const p的类型式char*,所以p是不可以再修改的。也就是所p必须是在定义时就已经初始化,并且不能再修改了。3、指向常量的指针常量指向常量的指针常量如:const int* const p = &b;可以这么理解int* const...
<< 241 242 243 244 245 246 247 248 249 250 >>