欢迎来到天天文库
浏览记录
ID:39286740
大小:61.01 KB
页数:4页
时间:2019-06-29
《网络编程实验四》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、本次实验要求完成以下内容:要求:1.将上面程序用vi录入并编译运行,老师查看运行结果。2.为程序加注释,重点解释输出结果的含义,写在活页纸上下课前上交;重点提示:上交材料雷同者,全部作废,视为没有完成实验。一、运行结果二、程序注释Main(){inti;//定义一个名为i的整形变量structsockaddr_inserver;//定义一个名为server的sockaddr_in类型的结构体bzero(&server,sizeof(server));//为网际套接字地址结构server设置初始值0printf(“Your
2、server’sipinitmemis”);//输出Yourserver’sipinitmemis字符串并换行for(i=0;i3、27.0.0.1”);//以上三行为套接字地址结构中的成员赋值,客户端要建立连接的服务器IP地址为127.0.0.1,端口号为1234printf(“Yourserver’sipsin_familyis%d”,server.sin_family);//以整数形式输出网际套接字地址结构中sin_family成员的值printf(“Yourserver’sipis%s,portis%d”,inet_ntoa(server.sin_addr),htons(server.sin_port));//以字符串的形式输出网际套4、接字地址结构中sin_addr成员的值,以整数形式输出网际套接字地址结构中sin_port成员的值printf(“Yourserver’slengthis%d”,sizeof(server));//以整数形式输出该套接字地址结构的大小printf(“Yourserver’sipmemis”);//输出Yourserver’sipmemis字符串并换行for(i=0;i5、char*)(&server)+i));}return;}三、输出结果解释第一行结果:执行printf(“Yourserver’sipinitmemis”);之后,printf函数输出字符串Yourserver’sipinitmemis并换行第二行结果:本行结果为网际套接字地址结构server设置初始值0之后的结果;此次结果显示为32个零,其中sin_family成员的值,占2个字节,对应为0000;sin_port成员的值,占2个字节,对应为0000;sin_family成员的值,占4个字节,对应为000000006、;最后十六个零为sin_zero成员的值,占8个字节,对应为0000000000000000。其中网际套接字地址结构体中共包含5个成员,sin_len是长度成员,占一个字节,存储套接字地址结构的长度,但不是所有系统都支持,有了它可以简化变长套接字地址结构的处理。一般情况下不需要设置它和检查它,除非涉及到路由套接字,本处并没有涉及到路由套接字所以只有32个零,否则可能是34个零。bzero函数的原型是externvoidbzero(void*s,intn),其中s为要置零的数据的起始地址,n为要置零的数据的字节个数,函数功7、能是将s所指的内存区域前n个字节置为0,且包括‘ ’。在执行过bzero函数之后,将server所指的内存区域中的字节全部置为0,故输出后的结果全部为0。第三行结果:本行结果为网际套接字地址结构中的成员sin_family的AF_INET的默认值2sin_family是Internet地址族,在IPv4中是AF_INET,其默认值为2。Winsock2.h中#defineAF_INET2 //internetwork:UDP,TCP,etc.第四行结果:本行结果为网际套接字地址结构中的成员ip地址的值和端口号的值。in8、et_ntoa函数的作用是将网际套接字地质结构中存储的32位的网络字节序的二进制IP地址转换成人们通用的点分十进制的IP地址并输出为127.0.0.1其中,127.0.0.1转换为32位的网络字节序的二进制IP地址为:1111111.00000000.00000000.0000000132位的网络字节序的二进制IP地
3、27.0.0.1”);//以上三行为套接字地址结构中的成员赋值,客户端要建立连接的服务器IP地址为127.0.0.1,端口号为1234printf(“Yourserver’sipsin_familyis%d”,server.sin_family);//以整数形式输出网际套接字地址结构中sin_family成员的值printf(“Yourserver’sipis%s,portis%d”,inet_ntoa(server.sin_addr),htons(server.sin_port));//以字符串的形式输出网际套
4、接字地址结构中sin_addr成员的值,以整数形式输出网际套接字地址结构中sin_port成员的值printf(“Yourserver’slengthis%d”,sizeof(server));//以整数形式输出该套接字地址结构的大小printf(“Yourserver’sipmemis”);//输出Yourserver’sipmemis字符串并换行for(i=0;i5、char*)(&server)+i));}return;}三、输出结果解释第一行结果:执行printf(“Yourserver’sipinitmemis”);之后,printf函数输出字符串Yourserver’sipinitmemis并换行第二行结果:本行结果为网际套接字地址结构server设置初始值0之后的结果;此次结果显示为32个零,其中sin_family成员的值,占2个字节,对应为0000;sin_port成员的值,占2个字节,对应为0000;sin_family成员的值,占4个字节,对应为000000006、;最后十六个零为sin_zero成员的值,占8个字节,对应为0000000000000000。其中网际套接字地址结构体中共包含5个成员,sin_len是长度成员,占一个字节,存储套接字地址结构的长度,但不是所有系统都支持,有了它可以简化变长套接字地址结构的处理。一般情况下不需要设置它和检查它,除非涉及到路由套接字,本处并没有涉及到路由套接字所以只有32个零,否则可能是34个零。bzero函数的原型是externvoidbzero(void*s,intn),其中s为要置零的数据的起始地址,n为要置零的数据的字节个数,函数功7、能是将s所指的内存区域前n个字节置为0,且包括‘ ’。在执行过bzero函数之后,将server所指的内存区域中的字节全部置为0,故输出后的结果全部为0。第三行结果:本行结果为网际套接字地址结构中的成员sin_family的AF_INET的默认值2sin_family是Internet地址族,在IPv4中是AF_INET,其默认值为2。Winsock2.h中#defineAF_INET2 //internetwork:UDP,TCP,etc.第四行结果:本行结果为网际套接字地址结构中的成员ip地址的值和端口号的值。in8、et_ntoa函数的作用是将网际套接字地质结构中存储的32位的网络字节序的二进制IP地址转换成人们通用的点分十进制的IP地址并输出为127.0.0.1其中,127.0.0.1转换为32位的网络字节序的二进制IP地址为:1111111.00000000.00000000.0000000132位的网络字节序的二进制IP地
5、char*)(&server)+i));}return;}三、输出结果解释第一行结果:执行printf(“Yourserver’sipinitmemis”);之后,printf函数输出字符串Yourserver’sipinitmemis并换行第二行结果:本行结果为网际套接字地址结构server设置初始值0之后的结果;此次结果显示为32个零,其中sin_family成员的值,占2个字节,对应为0000;sin_port成员的值,占2个字节,对应为0000;sin_family成员的值,占4个字节,对应为00000000
6、;最后十六个零为sin_zero成员的值,占8个字节,对应为0000000000000000。其中网际套接字地址结构体中共包含5个成员,sin_len是长度成员,占一个字节,存储套接字地址结构的长度,但不是所有系统都支持,有了它可以简化变长套接字地址结构的处理。一般情况下不需要设置它和检查它,除非涉及到路由套接字,本处并没有涉及到路由套接字所以只有32个零,否则可能是34个零。bzero函数的原型是externvoidbzero(void*s,intn),其中s为要置零的数据的起始地址,n为要置零的数据的字节个数,函数功
7、能是将s所指的内存区域前n个字节置为0,且包括‘ ’。在执行过bzero函数之后,将server所指的内存区域中的字节全部置为0,故输出后的结果全部为0。第三行结果:本行结果为网际套接字地址结构中的成员sin_family的AF_INET的默认值2sin_family是Internet地址族,在IPv4中是AF_INET,其默认值为2。Winsock2.h中#defineAF_INET2 //internetwork:UDP,TCP,etc.第四行结果:本行结果为网际套接字地址结构中的成员ip地址的值和端口号的值。in
8、et_ntoa函数的作用是将网际套接字地质结构中存储的32位的网络字节序的二进制IP地址转换成人们通用的点分十进制的IP地址并输出为127.0.0.1其中,127.0.0.1转换为32位的网络字节序的二进制IP地址为:1111111.00000000.00000000.0000000132位的网络字节序的二进制IP地
此文档下载收益归作者所有