如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
【IP地址转换函数】点分十进制整数inet_pton和inet_ntop这2个函数能够处理ipv4和ipv6。算是比较新的函数了。{#include<sys/types.h>#include<sys/socket.h>#include<arpa/inet.h>//arpa/inet.h:提供IP地址转换函数}sys/types.h:数据类型定义sys/socket.h:提供socket函数及数据结构netinet/in.h:定义数据结构sockaddr_inarpa/inet.h:提供IP地址转换函数netdb.h:提供设置及获取域名的函数sys/ioctl.h:提供对I/O控制的函数sys/poll.h:提供socket等待测试机制的函数其他在网络程序中常见的头文件unistd.h:提供通用的文件、目录、程序及进程操作的函数errno.h:提供错误号errno的定义,用于错误处理fcntl.h:提供对文件控制的函数time.h:提供有关时间的函数crypt.h:提供使用DES加密算法的加密函数pwd.h:提供对/etc/passwd文件访问的函数shadow.h:提供对/etc/shadow文件访问的函数pthread.h:提供多线程操作的函数signal.h:提供对信号操作的函数sys/wait.h、sys/ipc.h、sys/shm.h:提供进程等待、进程间通讯(IPC)及共享内存的函数建议:在编写网络程序时,可以直接使用下面头文件代码#include<unistd.h>#include<sys/types.h>#include<sys/socket.h>#include<netdb.h>#include<stdio.h>#include<stdlib.h>#include<string.h>#include<ctype.h>#include<errno.h>#include<malloc.h>#include<netinet/in.h>#include<arpa/inet.h>#include<sys/ioctl.h>#include<stdarg.h>#include<fcntl.h>#include<fcntl.h>涉及到用户权限及密码验证问题时加入如下语句:#include<shadow.h>#include<crypt.h>#include<pwd.h>需要注意的是,应该在编译时链接加密算法库,即增加编译选项:-lcrypt涉及到文件及时间操作加入如下语句:#include<sys/time.h>#include<utime.h>#include<time.h>#include<sys/stat.h>#include<sys/file.h>涉及到多进程操作时加入如下语句:#include<sys/wait.h>#include<sys/ipc.h>#include<sys/shm.h>#include<signal.h>涉及到多线程操作时加入如下语句:#include<pthread.h>#include<sys/poll.h>需要注意的是,应该在编译时链接线程库,即增加编译选项:-lthreadsocket编程常用函数structsockadd{unsignedshortsa_family;charsa_data[14];}用于bind,connect,recvfrom,sendtostructsockaddr_in{shortintsin_family;//AF_INETunsignedshortintsin_port;//网络字节顺序structin_addrsin_addr;//structin_addr{unsignedlongs_addr;}unsignedcharsin_zero[8];}sample:structsockaddr_insa;sa.sin_family=AF_INET;sa.sin_port=htons(3490);sa.sin_addr.s_addr=inet_addr(”132.241.5.10″);baero(&(sa.sin_zero),8);转换函数:unsignedlonginet_addr(constchar*cp);char*inet_ntoa(strctin_addrin);字节顺序转换:htons()——-Hosttonetworkshorthtonl()——–Hosttonetworklongntohs()——-Networktohostshortntohl()——–Ne