随笔分类 -  unix网络编程[卷1]

摘要:地址转换函数 int inet_aton(const char *strptr,struct in_addr *addrptr) 将strptr所指C字符串转换成一个32位的网络字节序二进制值,并同过addrptr指针来存储,成功返回1,失败返回0 int_addr_t inet_addr(cons 阅读全文
posted @ 2016-04-02 20:20 ailx10 阅读(408) 评论(0) 推荐(0)
摘要:操作多字节字段的函数有2组 名字以b(表示字节)开头的 名字以mem(表示内存)开头的 它们既不对数据作解释,也不假设数据是以空字符结束的C字符串 当处理套接字地址结构时,我妈需要这些类型的函数,因为我妈需要操作诸如IP地址这样的字段,这些字段可能包含值位0的字节,却并不是C字符串。 以空字符结尾的 阅读全文
posted @ 2016-04-02 19:52 ailx10 阅读(198) 评论(0) 推荐(0)
摘要:考虑一个16位整数,它由2个字节组成。内存中存储这2个字节有2种方法: 一种是将低序字节存储在起始地址,称为小端(little-endian)字节序 另一种方法是将高序字节存储在起始地址,称为大端(big-endian)字节序 我们把系统所采用的字节序称为主机自己序(host byte order) 阅读全文
posted @ 2016-04-02 13:34 ailx10 阅读(478) 评论(0) 推荐(0)
摘要:当往一个套接字函数传递一个套接字地址结构时,该结构总是以引用形式来传递,也就是说传递的是指向该结构的一个指针。 该结构的长度也作为一个参数来传递,不过其传递方式取决于该结构的传递方向:进程->内核 内核->进程 1)进程->内核 传递套接字地址结构的函数有3个:bind、connect、sendto 阅读全文
posted @ 2016-04-02 12:58 ailx10 阅读(573) 评论(0) 推荐(0)
摘要:作为IPv6套接字API的一部分而定义的新的套接字地址结构克服来现有struct sockaddr的一些缺点 不像struct sockaddr,新的struct sockaddr_storage足以容纳系统所支持的任何套接字地址结构 struct sockaddr_storage{ uni8_t 阅读全文
posted @ 2016-04-02 12:32 ailx10 阅读(200) 评论(0) 推荐(0)
摘要:IPv6套接字地址结构 struct in6_addr{ unit8_t sa_addr[16]; }; #define SIN6_LEN struct sockaddr_in6{ unit8_t sin6_len; sa_family_t sin6_family; in_port_t port; 阅读全文
posted @ 2016-04-02 12:24 ailx10 阅读(1235) 评论(0) 推荐(0)
摘要:大多数套接字函数都需要一个指向套接字地址结构的指针作为参数。每个协议簇抵都定义它自己的套接字地址结构 这些结构的名字均以sockaddr_开头,并以对应每个协议簇的唯一后缀结尾 1.IPv4套接字地址结构 IPv4套接字地址结构通常称为:网际套接字地址结构 它以sockaddr_in命名 struc 阅读全文
posted @ 2016-04-01 22:27 ailx10 阅读(228) 评论(0) 推荐(0)
摘要:程序执行流程: 1.创建TCP套接字 listenfd = Socket(AF_INET, SOCK_STREAM, 0) 2.清空sockaddr_in servaddr结构体 bzero(&servaddr, sizeof(servaddr)) 3.填写网际套接字地址结构 我们指定IP地址为IN 阅读全文
posted @ 2016-04-01 20:28 ailx10 阅读(399) 评论(0) 推荐(0)
摘要:程序执行流程: 1.创建套接字 sockfd = socket(AF_INET, SOCK_STREAM, 0) 2.把结构体servaddr清零 bzero(&servaddr, sizeof(servaddr)) 3.置地址簇为AF_INET servaddr.sin_family = AF_I 阅读全文
posted @ 2016-04-01 19:45 ailx10 阅读(426) 评论(0) 推荐(0)