#阮一峰的网络日志

UNIX网络编程读书笔记:原始套接口

概述应用程序可以绕过传输层而直接使用IPv4和IPv6,这称为原始套接口(rawsocket)。http://www.cnblogs.com/nufangrensheng/p/3583435.html。原始套接口是一种对原始网络报文进行处理的套接口。原始套接口主要应用在底层网络编程上,同时也是网络黑客的必备手段。例如s...

UNIX网络编程读书笔记:UNIX域协议

概述UNIX域协议并不是一个实际的协议族,而是在单个主机上执行客户/服务器通信的一种方法,所用API与在不同主机上执行客户/服务器通信所用的API(套接口API)相同。UNIX域协议可视为进程间通信(IPC)方法之一。UNIX域提供两类套接口:字节流套接口(类似TCP)和数据报套接口(类似UDP)。使用UNIX域套接口...

UNIX网络编程读书笔记:名字与地址转换

概述在名字和数值地址间进行转换的函数:gethostbyname和gethostbyaddr:在主机名字与IPv4地址之间进行转换。仅仅支持IPv4.getservbyname和getservbyport:在服务名字和端口号之间进行转换。getaddrinfo和getnameinfo:用于主机名字和IP地址之间以及服务...

UNIX网络编程读书笔记:基本SCTP套接口编程

概述SCTP是一个较新的传输协议,于2000年在IETF得到标准化(TCP是在1981年标准化的)。它最初是为满足不断增长的IP电话市场设计的;具体地说,就是穿越因特网传输电话信令。SCTP是一个可靠的面向消息的协议,在端点之间提供多个流,并为多宿提供传输级支持。尽管SCTP和TCP之间存在一些本质性的差别,然而SCT...

UNIX网络编程读书笔记:基本UDP套接口编程

概述使用UDP编写的一些流行的应用程序有:DNS(域名系统)、NFS(网络文件系统)和SNMP(简单网络管理协议)。如下图所示,给出了典型的UDP客户/服务器程序的函数调用:客户不与服务器建立连接,而是只管使用sendto函数给服务器发送数据报,其中必须作为参数指定目的地(即服务器)的地址。类似地,服务器不接受来自客户...

UNIX网络编程调试工具:tcpdump、netstat和lsof

tcpdump程序tcpdump一边从网络读入分组一边显示关于这些分组的大量信息。它还能够只显示与所指定的准则匹配的那些分组。netstat程序netstat服务于多个目的:(1)展示网络端点的状态。(2)展示某个主机上各个接口所属的多播组。(3)使用-s选项显示各个协议的统计信息。(4)使用-r选项显示路由表或使用-...

UNIX网络编程读书笔记:套接口选项

概述有很多方法来获取和设置影响套接口的选项:getsockopt和setsockopt函数fcntl函数ioctl函数getsockopt和setsockopt函数这两个函数仅用于套接口。#include<sys/socket.h>intgetsockopt(intsockfd,intlevel,intop...

UNIX网络编程读书笔记:poll函数

poll函数提供的功能与select类似,不过在处理流设备时,它能够提供额外的信息。poll函数原型#include<poll.h>intpoll(structpollfd*fdarray,unsignedlongnfds,inttimeout);返回:就绪描述字的个数,0——超时,-1——出错poll函数...

UNIX网络编程读书笔记:pselect函数

函数原型pselect函数是由POSIX发明的,其原型如下:#include<sys/select.h>#include<signal.h>#include<time.h>intpselect(intmaxfdpl,fd_set*readset,fd_set*writeset,fd_...

UNIX网络编程读书笔记:shutdown函数

终止网络连接的通常方法是调用close函数。不过close有两个限制,却可以使用shutdown来避免。close把描述字的引用计数减1,仅在该计数变为0时才关闭套接口。使用shutdown可以不管引用计数就激发TCP的正常连接终止序列(由FIN开始的四个分节).close终止数据传送的两个方向:读和写。既然TCP连接...

UNIX网络编程读书笔记:select函数

select函数概况:select函数允许进程指示内核等待多个事件中的任何一个发生,并仅在有一个或多个事件发生或经历一段指定的时间后才唤醒它。作为一个例子,我们可以调用select,告知内核仅在下列情况发生时才返回:(1)集合{1,4,5}中的任何描述字准备好读,或(2)集合{2,7}中的任何描述字准备好写,或(3)集...

UNIX网络编程读书笔记:I/O模型(阻塞、非阻塞、I/O复用、信号驱动、异步)

I/O模型UNIX下可用的5种I/O模型:(1)阻塞I/O(2)非阻塞I/O(3)I/O复用(select和poll)(4)信号驱动I/O(SIGIO)(5)异步I/O对于一个套接口上的输入操作,第一步通常涉及等待数据从网络中到达。当所等待分组到达时,它被拷贝到内核中的某个缓冲区。第二步就是把数据从内核缓冲区拷贝到应用...

UNIX网络编程读书笔记:基本TCP套接口编程

 1、socket函数(客户端、服务器端都必须调用)参数family指明协议族(family),该参数也往往被称为协议域(domain)。所以有的书上声明如下:而且对于socket函数第一个参数,在不同书籍上可能会看到不同前缀的取值常量列表,如下两图所示:AF_xxx与PF_xxx:AF_前缀表地址族,PF_...

UNIX网络编程读书笔记:地址操纵函数

地址格式转换函数:它们在ASCII字符串(人们比较喜欢用的格式)与网络字节序的二进制值(此值存于套接口地址结构中)间转换地址。1、inet_aton、inet_addr、inet_ntoainet_aton、inet_addr和inet_ntoa在点分十进制数串(例如,”206.168.112.96“)与它的32位网络...

UNIX网络编程读书笔记:字节操纵函数

#include<strings.h>voidbzero(void*dest,size_tnbytes);voidbcopy(constvoid*src,void*dest,size_tnbytes);intbcmp(constvoid*ptr1,constvoid*ptr2,size_tnbytes);返...
首页上一页...678910...下一页尾页