- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Unix网络编程API.doc
Unix网络编程API
1.字节序函数
#include netinet.huint16_t htons(uint16_t host16bitvalue);uint32_t htonl(uint32_t host32bitvalue);返回:网络字节序值
uint16_t ntohs(uint16_t net16bitvalue);uint32_t ntohl(uint32_t net32bitvalue);返回:主机字节序值
一个测试本机字节序的程序,可参见见unpv12e:intro/byteorder.c。
#include strings.hvoid 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—不相等
#include string.hvoid *memset(void *dest, int c, size_t len);void *memcpy(void *dest, void *src, size_t nbytes);int memcmp(const void *ptr1, const void *ptr2, size_t nbytes);返回:0—相同,0或0—不相同;进行比较操作时,假定两个不相等的字节均为无符号字符(unsigned char)。
#include arpa/inet.hint inet_aton(const char *strptr, struct in_addr *addrptr);返回:1—串有效,0—串有错。
in_addr_t inet_addr(const char *strptr);返回:若成功,返回32为二进制的网络字节序地址;若有错,则返回INADDR_NONE。
char *inet_ntoa(struct in_addr inaddr);返回:指向点分十进制数串的指针。
int inet_pton(int family, const char *strptr, void *addrptr);返回:1—成功;0—输入不是有效的表达格式,-1—出错。
const char *inet_ntop(int family, const void *addrptr, char *strptr, size_t len);返回:指向结果的指针—成功,NULL—失败。
说明:
inet_aton函数的指针若为空,则函数仍然执行输入串的有效性检查,但不存储任何结果。
inet_addr的缺陷:出错返回值INADDR_NONE等于55(IPv4的有限广播地址),所以该函数不能处理此地址。尽量使用inet_aton,不使用inet_addr。
inet_ntoa函数的执行结果放在静态内存中,是不可重入的。
参数family可以是AF_INET,也可以是AF_INET6,若参数family不被支持,则出错,errno置为EAFNOSUPPORT。
指针addrptr是结构指针。
len指定目标的大小,避免缓冲区溢出。如果len太小,则返回一个空指针,errno置为ENOSPC。为有助于规定该大小,有如下定义:#include netinet.h#define INET_ADDRSTRLEN 16 /*fro IPv4 dotted-decimal */#define INET6_ADDRSTRLEN 46 /*for IPv6 hex string */
inet_ntop函数的参数strptr不能为空指针,成功时,此指针即是函数的返回值。
实现IPv4版本的inet_pton和inet_ntop的程序,参见:unpv12e:libfree/inet_pton_ipv4.c和libfree/inet_ntop_ipv4.c。
函数原型如下:ssize_t readn(int filedes, void *buff, size_t nbytes);ssize-t writen(int filedes, void *buff, size_t nbytes);ssize_t readline(int filedes, void *buff, size_t maxlen);返回:读写字节数,-1—出错。
实现程序见:unpv12e:lib/readn.c、lib/writen.c、lib/readline1.c和lib/readline.c。
#include sy
您可能关注的文档
- 铸铁高速加工-CHI.ppt
- 计算机软件技术基础5修改.ppt
- Chap005会计学基础.ppt
- 楼宇自动化考试题目AND答案.doc
- 第二章 控制系统的数学模型(第三讲).ppt
- 机械制造基础自考冲刺班.doc
- 马克思基本原理概论复习重点.doc
- 矩阵在生活中的应用.doc
- 基础日语7.jsp.ppt
- 2012080551_张超.doc
- 2024-2025学年山东省潍坊市昌邑市高一上学期11月期中考试政治试题(解析版).docx
- 2024-2025学年山东省枣庄市薛城区、山亭区高二上学期1月期末考试政治试题(解析版).docx
- 2024-2025学年浙江省金砖联盟高一下学期4月期中考试政治试题(解析版).docx
- 2024-2025学年辽宁省协作体高三下学期第二次模拟考试政治试题(解析版).docx
- 2024-2025学年山东省威海市高二上学期期末考试政治试题(解析版).docx
- 2024-2025学年江西省八校协作体高二上学期期中考试政治试题(解析版).docx
- 2024-2025学年浙江省杭州市S9联盟高一上学期期中联考政治试题(解析版).docx
- 2024-2025学年浙江省宁波市三锋教研联盟高一下学期期中联考政治试题(解析版).docx
- 2024-2025学年山东省滨州市高二上学期1月期末考试政治试题(解析版).docx
- 2024-2025学年内蒙古自治区通辽市高二下学期3月月考政治试题(解析版).docx
最近下载
- GB∕T38305-2019头部防护救援头盔..pdf
- 2024届湖南省张家界市慈利县高一物理第二学期期末达标检测模拟试题含解析.doc VIP
- 通信铁塔标准图集(V1.0).pdf VIP
- 选矿试验技术方法 第5部分:浮选.docx VIP
- 《选矿试验技术方法第4部分:磁选》.pdf VIP
- 上市公司董事会秘书工作手册-信息披露政策法规汇编(通用) 20240627.pdf VIP
- 高标准农田设计实施方案(技术标340页).doc VIP
- 1688店铺运营计划方案.pdf VIP
- 《医学伦理学》教案 第四章 医学伦理学的规范体系.pdf VIP
- 《选矿试验技术方法 第1部分:破碎筛分》.pdf VIP
文档评论(0)