2022年网络编程实验四 .pdf

上传人:Q****o 文档编号:30531010 上传时间:2022-08-06 格式:PDF 页数:4 大小:163.47KB
返回 下载 相关 举报
2022年网络编程实验四 .pdf_第1页
第1页 / 共4页
2022年网络编程实验四 .pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《2022年网络编程实验四 .pdf》由会员分享,可在线阅读,更多相关《2022年网络编程实验四 .pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、本次实验要求完成以下内容:要求:1 将上面程序用vi 录入并编译运行,老师查看运行结果。2 为程序加注释,重点解释输出结果的含义,写在活页纸上下课前上交;重点提示:上交材料雷同者,全部作废,视为没有完成实验。一、运行结果二、程序注释Main() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - int i; / 定义一个名为i 的整形变量struct sockaddr_in server; / 定义一个名为server的 sock

2、addr_in类型的结构体bzero(&server,sizeof(server); / 为网际套接字地址结构server设置初始值0printf( “ Your server s ip init mem is n ” ); / 输出 Your server s ip init mem is 字符串并换行for(i=0;isizeof(server);i+) / 以十六进制形式输出套接字地址结构server的初始值 Printf( “ %02x” ,*(unsigned char*)(&server)+i); printf( “ n ” ); server.sin_family=AF_INET

3、; server.sin_port=htons(PORT);server.sin_addr.s_addr=inet_addr(“ 127.0.0.1” ); / 以上三行为套接字地址结构中的成员赋值,客户端要建立连接的服务器IP 地址为127.0.0.1,端口号为1234printf( “ Your server s ip sin_family is %dn ” ,server.sin_family); / 以整数形式输出网际套接字地址结构中sin_family 成员的值printf( “ Your server s ip is %s,portis %dn ” ,inet_ntoa(serve

4、r.sin_addr),htons(server.sin_port); / 以字符串的形式输出网际套接字地址结构中sin_addr 成员的值,以整数形式输出网际套接字地址结构中sin_port 成员的值printf( “ Your server s length is %dn ” ,sizeof(server); / 以整数形式输出该套接字地址结构的大小printf( “ Your server s ip mem is n ” ); /输出 Your server s ip mem is 字符串并换行for(i=0;isizeof(server);i+) / 以十六进制形式输出网际套接字地址结

5、构server的值 printf( “ %02x ” ,*(unsigned char*)(&server)+i); return; 三、输出结果解释第一行结果:执行 printf( “ Your server s ip init mem is n ” );之后, printf 函数输出字符串Your server s ip init mem is 并换行第二行结果:本行结果为网际套接字地址结构server 设置初始值0 之后的结果 ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第

6、 2 页,共 4 页 - - - - - - - - - 此次结果显示为32 个零, 其中 sin_family 成员的值, 占 2 个字节, 对应为 00 00; sin_port成员的值, 占 2 个字节, 对应为 00 00; sin_family 成员的值, 占 4 个字节, 对应为 00 00 00 00;最后十六个零为sin_zero成员的值,占8 个字节,对应为00 00 00 00 00 00 00 00。其中网际套接字地址结构体中共包含5 个成员, sin_len 是长度成员,占一个字节,存储套接字地址结构的长度,但不是所有系统都支持,有了它可以简化变长套接字地址结构的处理。

7、一般情况下不需要设置它和检查它,除非涉及到路由套接字,本处并没有涉及到路由套接字所以只有32 个零,否则可能是34 个零。bzero 函数的原型是extern void bzero(void *s,int n),其中 s为要置零的数据的起始地址,n为要置零的数据的字节个数,函数功能是将s所指的内存区域前n个字节置为0,且包括 0 。在执行过bzero 函数之后, 将 server 所指的内存区域中的字节全部置为0,故输出后的结果全部为 0。第三行结果:本行结果为网际套接字地址结构中的成员sin_family 的 AF_INET的默认值2 sin_family 是 Internet 地址族,在I

8、Pv4 中是 AF_INET ,其默认值为2。Winsock2.h 中#define AF_INET 2 / internetwork: UDP, TCP, etc. 第四行结果:本行结果为网际套接字地址结构中的成员ip 地址的值和端口号的值。inet_ntoa 函数的作用是将网际套接字地质结构中存储的32 位的网络字节序的二进制IP 地址转换成人们通用的点分十进制的IP 地址并输出为127.0.0.1 其 中 , 127.0.0.1转 换 为32位 的 网 络 字 节 序 的 二 进 制IP地 址 为 :1111111.00000000.00000000.00000001 32 位的网络字节

9、序的二进制IP 地址转换为点分十进制的IP 地址为: 127.0.0.1 PORT 在程序的开头被声明为默认值1234,并在server.sin_port=htons(PORT) 语句中被转换成网络字节序给sin_port 赋值。htons 函数的作用是将16 位的短整型数从主机字节序转换成网络字节序并以整形形式输出为 1234 第五行结果:本行结果为网际套接字地址结构server 的大小 16 个字节sockaddr_in 结构体中包含5 个成员,其中sin_len 是长度成员,存储套接字地址结构的长度,但不是所有系统都支持,一般情况下不需要设置它和检查它,除非涉及到路由套接字。本程序并没有

10、设置这个成员,所以只有16 个字节。其中 sin_family 成员的值,占2 个字节,sin_port 成员的值,占2 个字节,sin_family 成员的值,占4 个字节,sin_zero 成员的值,占8 个字节,共16 个字节。第六行结果:执行 printf( “ Your server s ip mem is n ” );之后, printf 函数输出字符串Your server s ip mem is并换行第七行结果:本行结果输出为02 00 04 d2 7f 00 00 01 00 00 00 00 00 00 00 00 共 16 个字节, 以十六进制形式输出,其中 02 00

11、这两个字节表示的是成员sin_family 的值,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 4 页 - - - - - - - - - 以小端方式存储,在以上的结果输出中,以十进制形式输出的结果为2,而在内存中,其值占两个字节,所以空出的部分补零;04 d2 这两个字节表示的是成员sin_port 的值,对应的十进制值为1234;7f 00 00 01 这四个字节表示的是成员sin_family 的值,占四个字节,对应的点分十进制是127.0.0.1,;最后的八个字节全部置为0,暂时没有被使用,总是将它置为0。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 4 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁