预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验名称网络信息获取函数所属课程名称TCP/IP协议与网络编程实验时间2010/11/27实验地点信控系二机房学生姓名芦涛实验器材及环境PC机、VisualC++6.0实验目的在C++环境中编写代码,调用函数获取网络信息. 实验内容熟练掌握函数的调用及其编程; 调用函数获取网络信息,调试程序查看结果. 注释名条语句的含义. 撰写实验报告.实验步骤进入VisualC++6.0 创建一个空工程sy1 创建area.c文件 编写代码 #include<winsock2.h> #include<stdio.h> #include<stdlib.h> #pragmacomment(lib,"ws2_32.lib") voidmain() { WSADATAwsaData;//为了初始化环境而定义 charhostname[256];//定义主机名 intn;//定义整形制循环变量 structhostent*pHostent;//定义指向hostent的结构体指针变量*pHostent,调用gethostname()时定义 structsockaddr_insa;//定义指向sockaddr_in的结构体变量sa,调用gethostbyname()时定义 structprotoent*pProtoent; if(WSAStartup(MAKEWORD(2,0),&wsaData)!=0)//初始化环境 { printf("环境初始化失败:\n"); return; } printf("----------------------------\n"); printf("--&&--获取主机名--&&--\n"); if(gethostname(hostname,sizeof(hostname))!=0)//获得主机名 { printf("gethostname()函数调用失败,错误代号为:%u\n",WSAGetLastError()); return; } printf("主机名为:%s\n",hostname);//输出主机名 printf("----------------------------\n"); printf("--&&--获取主机信息--&&--\n"); pHostent=gethostbyname(hostname);//根据主机名获取主机信息 if(pHostent==NULL) { printf("gethostbyname()函数调用失败,错误代号为:%u\n",WSAGetLastError()); return; } else { printf("name:%s\naliases:%s\naddrtype:%d\nlength:%d\n", pHostent->h_name,pHostent->h_aliases, pHostent->h_addrtype,pHostent->h_length);//输出主机名、主机别名、主机地址类型、IP地址长度 for(n=0;pHostent->h_addr_list[n];n++)//返回所有的主机有IP地址 { memcpy(&sa.sin_addr.s_addr,pHostent->h_addr_list[n],pHostent->h_length); printf("所有IP地址:%s\n",inet_ntoa(sa.sin_addr)); } } printf("----------------------------\n"); printf("--&&--获取协议信息--&&--\n"); pProtoent=getprotobyname("TCP");//根据协议名获取协议信息 if(pProtoent==NULL) { printf("getprotobyname()函数调用失败,错误代号为:%u\n",WSAGetLastError()); return; } else printf("p_name:%s\np_proto:%d\n",pProtoent->p_name,pProtoent->p_proto);//输出协议名、协议号 for(n=0;pProtoent->p_aliases[n];n++) printf("p_aliases:%s\n",pProtoent->p_aliases);//输出协议别名 printf("----------------------------\n"); WSACleanup(); } 6、编译程序 7、查看运行 8、出错分析实验总结获得主机名-----gethostname() 获得与套接口相连的远程协议-----getpeername() 获得套接口本地信息------getsoc