摘要: 地址格式转换函数:它们在ASCII字符串(人们比较喜欢用的格式)与网络字节序的二进制值(此值存于套接口地址结构中)间转换地址。 1、inet_aton、inet_addr、inet_ntoa inet_aton、inet_addr和inet_ntoa在点分十进制数串(例如,”206.168.112.96“)与它的32位网络字节序二进制值间转换IPv4地址。 #include int i... 阅读全文
posted @ 2014-03-06 20:41 ITtecman 阅读(314) 评论(0) 推荐(0) 编辑
摘要: #include void bzero(void *dest, size_t nbytes);void bcopy(const void *src, void *dest, size_t nbytes);int bcmp(const void *ptr1, const void *ptr2, size_t nbytes);返回:0-相等,非0-不相等bzero将目标中指定数目的字节置为0;b... 阅读全文
posted @ 2014-03-06 19:56 ITtecman 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 前言 当把套接口地址结构传递给套接口函数时,总是通过指针来传递的,即传递的是一个指向结构的指针。结构的长度也作为参数来传递,其传递的方式取决于结构的传递方向:从进程到内核,还是从内核到进程。 1、从进程到内核 从进程到内核传递套接口地址结构的函数有3个:bind、connect和sendto,这3个函数的一个参数是指向套接口地址结构的指针,另一个参数是结构的整数大小,例如: /* e... 阅读全文
posted @ 2014-03-06 18:09 ITtecman 阅读(834) 评论(0) 推荐(0) 编辑
摘要: 前言 大多数套接口函数都需要一个指向套接口地址结构的指针作为参数。每个协议族都定义它自己的套接口地址结构。这些结构的名字均以“sockaddr_”开头,并以对应每个协议族的唯一后缀结束。 IPv4套接口地址结构 IPv4套接口地址结构通常也称为”网际套接口地址结构“,它以”sockaddr_in“命名,定义在头文件中。其POSIX定义如下: /* sockaddr_in */stru... 阅读全文
posted @ 2014-03-06 17:34 ITtecman 阅读(519) 评论(1) 推荐(0) 编辑
摘要: 所有博文中,“套接字”和“套接口”都是指socket,只是不同书籍翻译时用词不同。 阅读全文
posted @ 2014-03-06 16:43 ITtecman 阅读(147) 评论(0) 推荐(0) 编辑
摘要: TCP输出 下图展示了应用进程写数据到TCP套接口的过程。 每一个TCP套接口有一个发送缓冲区,我们可以用SO_SNDBUF套接口选项来改变这个缓冲区的大小。 当应用进程调用write时,内核从应用进程的缓冲区中拷贝所有数据到套接口的发送缓冲区。如果套接口的发送缓冲区容不下应用程序的所有数据(或是应用进程的缓冲区大于套接口发送缓冲区,或是套接口发送缓冲区还有其他数据),应用进程将被挂起(... 阅读全文
posted @ 2014-03-06 16:00 ITtecman 阅读(563) 评论(0) 推荐(0) 编辑
摘要: 前言 大多数TCP服务器是并发的,大多数UDP服务器是迭代的。 如果服务一个客户请求的时间不长,使用迭代服务器没有太大问题,一旦客户请求的时间需要花费很长,不希望整个服务器被单个客户长期占用,而希望同时服务多个客户,就需要选择并发服务器了。 迭代服务器程序框架 int listenfd,connfd;listenfd = socket( ... );bind(listen, ..... 阅读全文
posted @ 2014-03-06 14:53 ITtecman 阅读(1752) 评论(0) 推荐(2) 编辑
摘要: 图1 TCP服务器在端口21上执行被动打开 图2 客户对服务器的连接请求 图3 并发服务器让子进程处理客户请求 ... 阅读全文
posted @ 2014-03-06 14:36 ITtecman 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 端口号 端口号(port number):16位整数,用来区分不同的进程。 服务器使用的端口号:TCP和UDP定义了一组众所周知的端口(well-known port),用于标识众所周知的服务。 客户端使用的端口号:通常使用短期存活的临时端口(ephemeral port)。这些端口号通常由传输层协议自动赋予客户。客户一般不关心其临时端口的具体值,而只需确信它在所在主机中是唯一的就行。传输层... 阅读全文
posted @ 2014-03-06 13:31 ITtecman 阅读(849) 评论(0) 推荐(0) 编辑