#网络编程

UNIX网络编程读书笔记:辅助数据

辅助数据(ancillarydata)可通过调用sendmsg和recvmsg这两个函数,使用msghdr结构中的msg_control和msg_controllen这两个成员发送和接收。辅助数据的另一个称谓是控制信息(controlinformation)。辅助数据由一个或多个辅助数据对象(ancillarydata...

UNIX网络编程读书笔记:recvmsg和sendmsg函数

这两个函数是最通用的I/O函数。实际上我们可以把所有read、readv、recv和recvfrom调用替换成recvmsg调用。类似地,各种输出函数调用也可以替换成sendmsg调用。#include<sys/socket.h>ssize_trecvmsg(intsockfd,structmsghdr*m...

UNIX网络编程读书笔记:readv和writev函数

这两个函数类似于read和write,不过readv和writev允许单个系统调用读入到或写出自一个或多个缓冲区。这些操作分别称为分散读(scatterread)和集中写(gatherwrite),因为来自读操作的输入数据被分散到多个应用缓冲区中,而来自应用缓冲区的输出数据则被集中提供给单个写操作。#include&l...

UNIX网络编程读书笔记:recv和send函数

这两个函数类似于标准的read和write函数,不过需要一个额外的参数。#include<sys/socket.h>ssize_trecv(intsockfd,void*buff,size_tnbytes,intflags);ssize_tsend(intsockfd,constvoid*buff,size...

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)集...
首页上一页12345...下一页尾页