套接字编程
文章平均质量分 50
first_wolf
linux
展开
-
Unix域套接字
一 概述:(1)Unix域不是一个实际的协议簇,而是单个主机上客户/服务器通信的一种方法,所采用的API就是在不同主机上客户/服务器进行通信所有的套接字API。(2)Unix域提供两类套接字:字节流套接字(类似TCP)和数据报套接字(类似UDP)。(3)功能:*Unix域套接字往往比通信两端在同一个主机的TCP套接字快出一倍。*Unix域套接字可用于在同一个主机的不同进程之间传原创 2013-06-03 16:44:42 · 887 阅读 · 0 评论 -
套接字API(六)close函数和shutdown函数
一 close与shutdown的区别:*close函数:将描述符的访问计数减1,仅在计数为0时才关闭套接字(从而激发TCP的正常连接终止序列,即发送FIN)。*shutdown函数:不管引用计数的值是否为0,都可以激发TCP的正常连接终止次序。*close函数同时终止两个方向的数据传送:读和写。*shutdown可以只终止一个方向的数据传送。二 close函数:将描述原创 2013-07-27 22:10:44 · 2673 阅读 · 0 评论 -
套接字API(十四)write和read
一 write和read:(一)write:应用进程调用write,内核从该应用进程的缓冲区中复制所有数据到所写套接字的发送缓冲区。(二)read:应用进程调用read,内核从套接字的接收缓冲区读取数据。(三)如果套接字是阻塞的:默认情况,可通过fcntl修改。1.write:*如果套接字的发送缓冲区没有空间,则应用进程阻塞,直到有空间为止(TCP);由于UDP套接字不原创 2013-09-09 22:29:12 · 3104 阅读 · 0 评论 -
套接字API(四)listen函数
一 概述:(一)功能:listen for connections on a socket。1.listen函数把一个未连接的套接字转换成一个被动套接字(监听套接字),指示内核应接受指向该套接字的连接请求。2.导致套接字从CLOSED状态转换到LISTEN状态。(二)格式:1.语法:int listen(int sockfd,int backlog)。*backlo原创 2013-07-23 20:33:08 · 1320 阅读 · 0 评论 -
套接字API(十一)recv和send函数
待续...原创 2013-08-03 21:54:36 · 688 阅读 · 0 评论 -
套接字API(十三)recvmsg和sendmsg函数
待续...原创 2013-08-03 21:55:56 · 923 阅读 · 0 评论 -
套接字API(八)getsockopt和setsockopt
一 getsockopt和setsockopt:get or set options on sockets.(1)格式:*int getsockopt(int sockfd,int level,int optname,void *optval,socklen_t *optlen);*int setsockopt(int sockfd,int level,int optname,cons原创 2013-07-28 13:47:30 · 661 阅读 · 0 评论 -
套接字API(九)inet_pton函数和inet_ntop函数
一 inet_pton函数:convert IPv4 and IPv6 addresses from text to binary form(网络字节序的二进制形式)。(1)格式:int inet_pton(int af,const char *src,void *dst);(2)参数说明:*af:AF_INET(IPv4)或AF_INET6(IPv6).*src:指向要转换的字符原创 2013-07-28 14:15:39 · 1886 阅读 · 0 评论 -
套接字API(十)sendto和recvfrom函数
待续...原创 2013-08-03 21:53:13 · 943 阅读 · 0 评论 -
套接字API(十二)readv和writev函数
待续...原创 2013-08-03 21:55:21 · 958 阅读 · 0 评论 -
套接字API(七)getsockname和getpeername
一 getsockname函数:原创 2013-07-28 12:56:03 · 920 阅读 · 0 评论 -
套接字API(一)socket函数
一 功能:*socket():creates a endpoint for communication and return a descriptor.二 格式:(一)int socket(int family,int type,int protocol)*成功:返回非负描述符,在Unix系统上套接字描述符用文件描述符实现。出错:返回-1.(二)参数说明:原创 2013-07-23 18:50:47 · 970 阅读 · 0 评论 -
套接字API(五)accept函数
一 概述:1.功能:*accept函数由TCP服务器调用,用于从已完成连接队列队头返回一个已完成连接。如果已完成队列为空,那么进程被投入睡眠(假定套接字为阻塞方式)。2.格式:int accept(int listenfd,struct sockaddr *cliaddr,socklen_t *addrlen)。*listenfd:监听套接字。*cliaddr:返回客户进程的协原创 2013-07-23 20:44:14 · 1338 阅读 · 0 评论 -
套接字API(二)bind函数
一 概述:(一)功能:1.bind函数把一个本地协议地址赋予给一个套接字,即套接字绑定。2.对于网际协议,协议地址是IP地址和端口号的组合。3.一般而言,服务器都调用bind,而客户端调用bind,绑定客户端套接字地址意义不大。(二)格式:1.语法:*int bind(int sockfd,const struct sockaddr *addr,socklen_原创 2013-07-23 19:21:16 · 1628 阅读 · 0 评论 -
套接字API(三)connect函数
一 概述:(一)功能:TCP客户用connect函数来建立与TCP服务器的连接。1.如果是TCP套接字,调用connect函数将激发TCP的三次握手过程,而且仅在连接建立成功或出错时才返回。(二)格式:1.int connect(int sockfd,const struct sockadr *servaddr,socklen_t addrlen)*成功返回0,出错则为-1.原创 2013-07-23 20:03:47 · 2098 阅读 · 0 评论 -
网络间数据传输
待续...原创 2013-06-27 10:59:24 · 853 阅读 · 0 评论 -
名字和地址的转换
一 IP主机名(只支持IPv4):(1)gethostbyname:主机名->IP。(2)gethostbyaddr:IP->主机名。*命令:hostname和uname。二端口服务:从名字到端口的映射保存在文件/etc/services文件中。(1)getservbyname:服务->端口。(2)getservbyport:端口->服务。三 支持IPv原创 2013-06-03 16:24:25 · 779 阅读 · 0 评论 -
事件驱动I/O模型
待续...原创 2013-11-02 14:59:30 · 1137 阅读 · 0 评论