摘要: 字节流套接字上的read和write函数所表现的行为不同于通常的文件IO 字节流套接字上调用read或write输入或输出的字节数可能比请求的数量少,然而这不是出错的状态 这个现象的原因在于内核中用于套接字的缓冲区可能已经达到了极限 此时需要的是调用者再次调用read或write函数,以输入或输出剩 阅读全文
posted @ 2016-04-02 21:31 ailx10 阅读(361) 评论(0) 推荐(0) 编辑
摘要: inet_ntop的一个基本问题是:它要求调用者传递一个指向某个二进制地址的指针, 而该地址通常包含在一个套接字地址结构中,这就要求调用者必须知道这个结构的格式和地址簇, 为了使用这个函数,我们必须为IPv4编写如下代码: struct sockaddr_in addr; inet_ntop(AF_ 阅读全文
posted @ 2016-04-02 21:28 ailx10 阅读(629) 评论(0) 推荐(0) 编辑
摘要: 地址转换函数 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 阅读(381) 评论(0) 推荐(0) 编辑
摘要: 操作多字节字段的函数有2组 名字以b(表示字节)开头的 名字以mem(表示内存)开头的 它们既不对数据作解释,也不假设数据是以空字符结束的C字符串 当处理套接字地址结构时,我妈需要这些类型的函数,因为我妈需要操作诸如IP地址这样的字段,这些字段可能包含值位0的字节,却并不是C字符串。 以空字符结尾的 阅读全文
posted @ 2016-04-02 19:52 ailx10 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 通用: 下(前手或脚)放珠子 (前手)过肩摔 个人: 1. 招式1:(下脚) 招式2:下(后脚) 2. 招式1:后(前手) 3. 招式1:(后下)(下前腿) 4. 招式1:下(上腿) 5. 招式1:前(下后手) 招式2:下(上手) 6. 招式1:下(前腿) 7. 招式1:(手手) 招式2:前(下手) 阅读全文
posted @ 2016-04-02 17:55 ailx10 阅读(1109) 评论(0) 推荐(0) 编辑
摘要: 考虑一个16位整数,它由2个字节组成。内存中存储这2个字节有2种方法: 一种是将低序字节存储在起始地址,称为小端(little-endian)字节序 另一种方法是将高序字节存储在起始地址,称为大端(big-endian)字节序 我们把系统所采用的字节序称为主机自己序(host byte order) 阅读全文
posted @ 2016-04-02 13:34 ailx10 阅读(463) 评论(0) 推荐(0) 编辑
摘要: 当往一个套接字函数传递一个套接字地址结构时,该结构总是以引用形式来传递,也就是说传递的是指向该结构的一个指针。 该结构的长度也作为一个参数来传递,不过其传递方式取决于该结构的传递方向:进程->内核 内核->进程 1)进程->内核 传递套接字地址结构的函数有3个:bind、connect、sendto 阅读全文
posted @ 2016-04-02 12:58 ailx10 阅读(553) 评论(0) 推荐(0) 编辑
摘要: 作为IPv6套接字API的一部分而定义的新的套接字地址结构克服来现有struct sockaddr的一些缺点 不像struct sockaddr,新的struct sockaddr_storage足以容纳系统所支持的任何套接字地址结构 struct sockaddr_storage{ uni8_t 阅读全文
posted @ 2016-04-02 12:32 ailx10 阅读(192) 评论(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 阅读(1187) 评论(0) 推荐(0) 编辑