LINUX环境编程-网络编程.ppt

LINUX环境编程-网络编程.ppt

ID:51588584

大小:824.00 KB

页数:30页

时间:2020-03-24

LINUX环境编程-网络编程.ppt_第1页
LINUX环境编程-网络编程.ppt_第2页
LINUX环境编程-网络编程.ppt_第3页
LINUX环境编程-网络编程.ppt_第4页
LINUX环境编程-网络编程.ppt_第5页
资源描述:

《LINUX环境编程-网络编程.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、LINUX应用编程–网络编程篇2010年8月12日2一、字节排序函数在主机字节顺序与网络字节顺序间转换#include主机字节序网络字节序uint16_thtons(uint16_tval);uint32_thtonl(uint32_tval);网络字节序主机字节序uint16_tntohs(uint16_tval);uint32_tntohl(uint32_tval);3二、地址转换函数#include1.将字符串的IP地址转换成网络字节序的地址in_addr_tinet_addr(constcha

2、r*strIP);若成功,返回32位网络字节序的地址,若出错,则返回NADDR_NONE不建议使用,因为255.255.255.255这个地址无法被转换intinet_aton(constchar*strIP,structin_addr*addr);若成功,返回1,若地址字符串有错,返回0,仅转换IPV4地址intinet_pton(intfamily,constchar*strptr,void*addrptr);返回:1成功,0-输入不是有效的表达式,-1出错Family:AF_INET6,AF_INET地址转换函数2.将网络字节序的地址转换成字符串的IP

3、地址char*inet_ntoa(structin_addrinaddr);返回:指向字符串IP的指针。例:char*ip=inet_ntoa(addr.sin_addr);constchar*inet_ntop(intfamily,constvoid*addr,char*strIP,size_tlen);参数:family–地址族,值为AF_INET或AF_INET6addr–需要转换的地址返回:指向字符串IP的指针,失败返回NULL;例:charip[64];inet_ntop(AF_INET,&addr.sin_addr,ip,64);45三、地址结构

4、定义及变量定义1.地址结构structsockaddr{sa_family_tsa_family;charsa_data[14];};structsockaddr_in{sa_family_tsin_family;in_port_tsin_port;structin_addrsin_addr;};typedefuint32_tin_addr_t;structin_addr{in_addr_ts_addr;};通用套接字地址:6四、基本的TCP套接口函数及调用流程7四、基本套接字函数1.socket()intsocket(intfamily,inttype,i

5、ntprotocol);功能描述:创建套接字文件描述字。参数:family–协议族AF_INET--------IPV4协议(PF_INET)AF_INET6--------IPV6协议AF_LOCAL--------UNIX域协议(PF_LOCAL)AF_ROUTE-------路由套接口type–套接字类型SOCK_STREAM--------字节流套接口(TCP及AC_LOCAL时)SOCK_DGRAM---------数据报套接口(UDP及AC_LOCAL时)protocol–取0返回:成功为非负描述字,失败返回-1例子:intfd=socket(A

6、F_INET,SOCK_STREAM,0);8四、基本套接字函数2.connect()intconnect(intsockfd,conststructsockaddr*addr,socklen_tlen);功能描述:建立从客户端到服务器的连接返回:成功返回0,失败返回-1例子:intsock;structsockaddr_inaddr;memset(&addr,0,sizeof(addr));sock=socket(AF_INET,SOCK_STREAM,0);addr.sin_family=AF_INET;//转换IP和端口到网络字节序addr.sin_p

7、ort=htons(port);//addr.sin_addr.s_addr=inet_addr(“192.168.1.8”);inet_pton(AF_INET,“192.168.1.8”,&addr.sin_addr);if(connect(sock,(structsockaddr*)&addr,sizeof(addr))!=0){printf("Connectto%s:%dfailed",address,port);return-1;}9四、基本套接字函数recv()intrecv(intsock,void*buf,intsize,intflag)

8、;功能描述:从sock套接字接收数据。服务器使用其接

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。