partii基于linuxmswindows的socket编程

partii基于linuxmswindows的socket编程

ID:39975070

大小:1005.81 KB

页数:186页

时间:2019-07-16

partii基于linuxmswindows的socket编程_第1页
partii基于linuxmswindows的socket编程_第2页
partii基于linuxmswindows的socket编程_第3页
partii基于linuxmswindows的socket编程_第4页
partii基于linuxmswindows的socket编程_第5页
资源描述:

《partii基于linuxmswindows的socket编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、PartII基于Linux/MSWindows的Socket编程简单的时间日期程序客户端(IPv4)daytimetcpcli.c简介包含头文件创建TCPsocket指定服务器IP与端口与服务器建立连接读取并显示服务器应答终结程序简单的Daytime客户端(IPv6)daytimetcpcli6.c服务器地址结构体sockaddr_in6if((sockfd=socket(AF_INET6,SOCK_STREAM,0))<0)servaddr.sin6_family=AF_INET6;serva

2、ddr.sin6_port=htons(13);if(inet_pton(AF_INET6,argv[1],&servaddr.sin6_addr)<=0)错误管理:包裹函数sockfd=Socket(AF_INET,SOCK_STREAM,0);大写字母开头lib/wrapsock.cUnixerrnoValue--错误码简单Daytime服务器(IPv4) (迭代服务器)daytimetcpsrv1.c介绍创建TCPsocket绑定服务器端口将socket转换为监听socket接受客户端连接

3、,作出应答终止连接简单Daytime服务器(IPv6) (迭代服务器)daytimetcpsrvv6.c简介结构体函数代码#definein_addr_tunsingedintstructsockaddr_inservSocket地址结构体(1)IPv4Socket地址结构体#include/linux/windows所需要数据类型注意长度成员sin_len的设置和检查可选sin_family,sin_addr,sin_port,等三个成员为必

4、须的in_addr_t为32位以上的无符号整数in_port_t为16位以上的整数sa_family_t可为任何类型的无符号整数无论IPv4地址的TCP端口还是UDP端口都必须存储为网络字节顺序serv.sin_addr指32位的IPV4地址,以in_addr结构存储,而serv.sin_addr.s_addr指相同的32位IPv4地址的in_addr_t形式Socket地址结构(2)通用Socket地址结构#defineSAstructsockaddrSocket地

5、址结构(3)IPv6Socket地址结构(RFC3493)Socket地址结构传送过程绑定(bind)连接(connect)传输(sendto)Socket地址结构接收过程AcceptRecvfromGetsocknamegetpeername字节顺序函数Internet协议使用big-endian字节顺序--网络字节顺序字节顺序转换函数h(host)主机标准,n(network)网络标准,s(short)短整数标准,l(long)长整数标准.Berkeley-derived函数ANSIC函数地

6、址转换(1)inet_aton将C语言字符串从strptr转换到32位网络字节顺序,存储到addrptrinet_addr作与同样的转换,但已废弃inet_ntoa转换32位网络顺序IPv4地址为C标准字符串地址转换(2)family:AF_INET或AF_INET6inet_pton转换字符串指针strptr为网络格式,保存到addrptrinet_ntop转换网络数字(addrptr)为数字指针(strptr).len为目标的长度,防止内存溢出地址转换(3)#defineINET_ADDRS

7、TRLEN16/*forIPv4dotted-decimal*/#defineINET6_ADDRSTRLEN46/*forIPv6hexstring*/例1例2协议无关函数函数使用自己的静态缓存保存结果,返回值为缓存的指针注意函数使用的是静态缓存,使用时要保证线程安全。函数的实现(lib/sock_ntop.c)协议无关函数(1)协议无关函数(2)sock_bind_wildbindsthewildcardaddressandanephemeralporttoasocket.lib/sock_

8、bind_wildsock_cmp_addrcomparestheaddressportionoftwosocketaddressstructures.lib/sock_cmp_addrsock_cmp_portcomparestheportnumberoftwosocketaddressstructures.sock_get_portreturnsjusttheportnumber,sock_ntop_hostconvertsjustthehostportionofasocketaddress

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

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

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