中南林业科技大学《管理系统中计算机应用》实践报告姓名:XXX专业:人力资源管理院(系):中南林业科技大学成教学院实习时间:2013年4月18日实习地点:XXXXXXXXXX指导教师评语:成绩:签名:年月日撰写及批改注意事项一、填写信息1、学生填写信息齐全、字迹清晰、日期真实;2、教师批改后的签名和日期应完整;3、报告中封面、图、程序要求打印(封面与此页要求正反双面打印,教师评语要求手写)。二、实习报告的撰写1、实习报告撰写认真细致,数据计算正确、误差分析准确、实验结论分析符合科学规律。2、实习报告有绘制的图形、图表时,要求(1)用电脑绘制;(2)应在报告中注明图号、表号。三、批改实验报告1、一律采用百分制;2、批改时应对错分明,错误之处应有文字说明或指出错误的标记;3、指导教师评语的内容:(1)对本次认识实习完成情况的评语;(2)对本次认识实习报告的评语;目录1.软件编译理论及实践教程实习内容..................................42.套接字编程......................................................62.1使用说明书................................................62.2原理说明书................................................72.3程序注释..................................................73.连接数据库.....................................................193.1使用说明书...............................................193.2原理说明书...............................................203.3程序注释.................................................204.实习总结、体会与收获...........................................26(正文部分)1.软件编译理论及实践教程实习内容一:我的电脑磁盘分析:0000000000管理节点1000000003F000000003FC盘(48.8GB)00061AB82700061AB827管理节点200061AB86600061AB866D盘(73.4GB)000F48CDDA000F48CDDA分区间隙000F48CE18000F48CE18管理节点3000F48CE19000F48CE19E盘(73.4GB)001876E38D001876E38D分区间隙001876E3CB001876E3CB二.PING.EXE十六进制源码分析在文件存储空间中,ping.exe十六进制源码分析如下:2.套接字编程2.1.使用说明书:第一步:先打开服务器端(server.exe).根据提示输入端口号,需要输入大于5001小于65535的值,否则就是用默认的5001作为端口值第二步:创建套接字并选择协议。第三步:打开客户端(client.exe),根据提示,将客户端(server.exe)所在的服务器的IP地址输入进去。第四步:输入在服务器端(server.exe)中建立的端口号值。第五步:选择和服务器端(server.exe)中一样的协议第六步:收发数据管理节点4001876E3CC001876E3CCF盘(102.4GB)0025422D6C1剩余扇区第七步:关闭连接。2.2原理说明书2.3程序注释/******************************************************\*client.c-简单的TCP/UDP套接字客户程序windows环境*\******************************************************/#includewinsock2.h//关于套接字的头文件#includestdlib.h#includestdio.h#includestring.h#includeconio.h#pragmacomment(lib,ws2_32)//添加‘ws2_32’库intmain(void){unsignedshortport=5001;//端口号intsocket_type=SOCK_STREAM;//缺省使用TCP连接charBuffer[1280];//收发缓冲区unsignedintaddr;//IP地址变量intretval,i;//临时变量structsockaddr_inserver,from;//套接字地址结构变量structhostent*hp;//主机信息结构变量指针WSADATAwsaData;//windows套接字信息SOCKETconn_socket;//套接字变量//先输入客户程序所需要的基本信息:服务器地址,端口号,套接字类型printf(请输入服务器地址:);scanf(%s,Buffer);printf(请输入端口号(5000):);scanf(%d,&i);if(i5000||i65535)printf(不正确的端口号%d,用缺省端口号5001\n,i);elseport=i;printf(请输入套接字类型(1,TCP;2,UDP):);scanf(%d,&i);if(i==1)socket_type=SOCK_STREAM;//设定为SOCK_STREAMelseif(i==2)socket_type=SOCK_DGRAM;//设定为SOCK_DGRAMelseprintf(不正确的输入%d,使用TCP数据流\n,i);//在windows环境下,需要先初始化协议栈if((retval=WSAStartup(0x202,&wsaData))!=0)//WSAStartup函数调用,用来初始//socket{printf(WSAStartup失败,错误号:%d\n,retval);WSACleanup();//当调用了WSAStartup之后,就需要调用WSACleanup函数释放内存return-1;}//取得主机IP地址if(isalpha(Buffer[0]))//是域名或命名地址,用首字母的是否在A-Z,或者a-z来判断是域名还是IP地址hp=gethostbyname(Buffer);//从一个主机数据库中提取出主机信息else{addr=inet_addr(Buffer);//是点分地址hp=gethostbyaddr((char*)&addr,4,AF_INET);//根据网络地址,获得主机信息,执行成功,就返回一个指向主机信息的结构}if(hp==NULL){printf(不能解析地址[%s]:错误号%d\n,Buffer,WSAGetLastError());//用于获取错误信息WSACleanup();exit(1);}//拷贝解析的信息到sockaddr_in结构中memset(&server,0,sizeof(server));//分配内存空间,由server返回memcpy(&(server.sin_addr),hp-h_addr,hp-h_length);//信息的copyserver.sin_family=hp-h_addrtype;//组协议初始化server.sin_port=htons(port);//端口号初始化//建立套接字conn_socket=socket(AF_INET,socket_type,0);if(conn_socket0){printf(socket()失败,错误号:%d\n,WSAGetLastError());WSACleanup();return-1;}//对于流式套接字,需要先建立连接//其实也可以使用connect(),send(),recv()等函数在windows里面一样实现数据报套接字功能if(socket_type!=SOCK_DGRAM){printf(正在连接到:%s\n,hp-h_name);if(connect(conn_socket,(structsockaddr*)&server,sizeof(server))==SOCKET_ERROR){printf(connect()失败,错误号:%d\n,WSAGetLastError());closesocket(conn_socket);//如果创建失败,就关闭连接套接字WSACleanup();return-1;}}while(1){//得到要发送的信息字符串puts(\n输入送到服务器的信息:);gets(Buffer);if(!strlen(Buffer))//如果没有输入信息,继续循环continue;//发送网络信息if(socket_type!=SOCK_DGRAM)retval=send(conn_socket,Buffer,strlen(Buffer)+1,0);//面向tcp,类似BSDwrite()elseretval=sendto(conn_socket,Buffer,strlen(Buffer)+1,0,//发送字符串的时候,须将字符串的结束符\0发送(structsockaddr*)&server,sizeof(server));//面向UDPif(retval==SOCKET_ERROR){printf(发送失败,错误号:%d\n,WSAGetLastError());break;}elseprintf(发送信息:%s\n,Buffer);//接收网络信息i=sizeof(from);if(socket_type!=SOCK_DGRAM)retval=recv(conn_socket,Buffer,sizeof(Buffer),0);//面向tcp,类似BSDread()elseretval=recvfrom(conn_socket,Buffer,sizeof(Buffer),0,(structsockaddr*)&from,&i);//面向UDPif(retval==SOCKET_ERROR){printf(接收信息失败,错误号:%d\n,WSAGetLastError());break;}elseif(retval==0)//对于面向连接的套接字,需要判断对方是否关闭连接{printf(服务器关闭连接\n);break;}else//正确接收到网络信息printf(收到%d字节信息:%s\n,retval,Buffer);//程序的一个退出条件if(!stricmp(Buffer,quit))break;}//关闭套接字closesocket(conn_socket);WSACleanup();return0;}/*******************************************************\*server.c-简单TCP/UDP套接字服务器程序windows环境*\*******************************************************/#includewinsock2.h//套接字头文件#includestdlib.h#includestdio.h#includestring.h#includeiostream.h#pragmacomment(lib,ws2_32)//添加库intmain(void){unsignedshortport=5001;//端口号intsocket_type=SOCK_DGRAM;//缺省使用TCP连接charBuffer[1024];//收发缓冲区intretval,fromlen,i,