




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验总成绩: 装 订 线报告份数: xxxx学院 xxxxxxxxxxx学院 课程设计报告专业班级: 学生姓名: 学号(班内序号): 年 月 日第五学期实习报告一 课程设计目的与任务1目的:(1)加深对计算机网络的基本概念和原理,以及网络编程接口及Winsock概念、编程原理的理解;(2)提高学生网络应用与编程的能力。学生在七个设计题目中选择一个,并可选择任意开发工具来设计完成,提高其分析与解决问题的能力,为大型网络编程打下坚实基础;(3)通过撰写课程设计报告,锻炼学生的逻辑组织和语言表达能力;(4)培养学生理论运用于实践的综合应用和设计创新能力。2任务:(1)设计完成与网络相关题目的基本功能要求;(2)调试运行之后,要求边演示边解释设计的思想、过程及采用的方法。(3)按一定的规范要求,撰写课程设计报告。二 课程设计的基本要求1熟练掌握网络的基本概念和原理;2掌握网络编程接口及Winsock概念及编程原理;3掌握基于TCP/IP的Internet编程技术;4掌握各种软件开发工具的使用过程及方法。课程设计题目:猜数游戏一猜数游戏的要求:(1).软件名:猜数游戏(分服务器和客户端两部分)(2).功能:游戏后台运行一个服务器软件,游戏者通过客户端登录后,服务器随机产生一个1-100之间的随机数供游戏者猜,游戏者从客户端输入一个数值,如果该数比设定的数大,软件提示:“大了”,如果该数比设定的数小,软件提示:“小了”,若相等,返回“猜对了,您共猜了*次”。服务器同时记录并维护一个游戏玩家的TOP10排行榜,供玩家查询。(3).编程语言及工具:自选(如VB、JAVA、C#、Delphi、VC)(4).服务端:接受客户端的命令请求并提供相应的服务。(5).客户端:完成游戏人机界面的设计,以命令的方式向服务器请求,并显示相应的提示。主要的命令有:1CONNECT IP地址 端口号指定游戏服务器的IP地址和端口号,连接到服务器。响应:连接成功/失败。2LOGIN 用户名用户登录,报告服务器玩家的名字。响应:成功/失败。3GUESS 数字猜数。响应:大了/小了/对了。4LISTTOP10 请求显示TOP10排行榜。响应:显示TOP10排行榜。5EXIT退出游戏。二课程设计原理:在WIN32平台上的WINSOCK编程都要经过下列步骤:定义变量-获得WINDOCK版本-加载WINSOCK库-初始化-创建套接字-设置套接字选项-关闭套接字-卸载WINSOCK库-释放资源 以下是WINSOCK C/S的建立过程:服务端客户端1.初始化WSA1.初始化WSA2.建立SOCKET2.建立SOCKET3.绑定SOCKET3.连接服务器4.在指定的端口监听4.发送和接收数据5.接受一个连接5.断开连接6.发送和接收数据7.断开连接三程序源代码服务器:#include #include #include #pragma comment(lib,ws2_32.lib)#define SERVER_PORT 5208 int answer = 0;struct Sample char name 11; int s; score200;void randanswer() srand( (unsigned)time( NULL ) ); answer = (rand()%99)+1;void sorta() int a,j; for(a=19;a0;a-) for(j=0;j scorej+1.s) int tmpa; char tmpb11; tmpa=scorej.s; strcpy(tmpb,); scorej.s=scorej+1.s; strcpy(,scorej+1.name); scorej+1.s=tmpa; strcpy(scorej+1.name,tmpb); int main() for(int t=0;t200;t+)scoret.s=0; WORD sockVersion = MAKEWORD(2,2); WSADATA wsaData; if(WSAStartup(sockVersion, &wsaData)!=0) return 0; SOCKET slisten = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if(slisten = INVALID_SOCKET) printf(n); return 0; sockaddr_in sin; sin.sin_family = AF_INET; sin.sin_port = htons(5208); sin.sin_addr.S_un.S_addr = INADDR_ANY; if(bind(slisten, (LPSOCKADDR)&sin, sizeof(sin) = SOCKET_ERROR) printf(n); if(listen(slisten, 5) = SOCKET_ERROR) printf(); return 0; SOCKET sClient; sockaddr_in remoteAddr; int nAddrlen = sizeof(remoteAddr); char revData255; int player=0; while (true) sClient = accept(slisten, (SOCKADDR *)&remoteAddr, &nAddrlen); bool c=true; while (c=true) if(sClient = INVALID_SOCKET) printf(); continue; printf(rn, inet_ntoa(remoteAddr.sin_addr); int ret = recv(sClient, revData, 50, 0); if(ret 0) revDataret = 0x00; puts(revData); if(revData1=R) strcpy(,revData+3); memset(revData,0,255*sizeof(char); char sendData50; randanswer(); sprintf(sendData,%d,answer); puts(sendData); send(sClient, sendData, strlen(sendData), 0); ret=recv(sClient, revData, 255, 0); if (ret 0) revDataret = 0x00; if(revData0=*) scoreplayer.s=atoi(revData+1); if(revData0=!) c=false; if(revData1=T) sorta(); char rank800=; int d; for(d=0;d10;d+) char temp30=; sprintf(temp,%d,Player:%s,Times:%dn,d+1,,scored.s); strcat(rank,temp); send(sClient, rank, strlen(rank), 0); printf(游戏玩家:%s,游戏次数:%dn,,scoreplayer.s); memset(revData,0,255*sizeof(char); player+; closesocket(sClient); closesocket(slisten); WSACleanup(); return 0; 客户端:#include #include #include #include #pragma comment(lib,ws2_32.lib)#define SERVER_PORT 5208 int answer;int guessing(char type) int p=0,p_i; char guess4; bool a=false;/设置一个 布尔型(BOOL)变量 m 的值为 false.注释:布尔型变量只能是 false 或者 true . while(a!=true) p_i=0; if(p=1)gets(type); while(typep_i+6!=0) guessp_i=typep_i+6; p_i+; guessp_i=0; p+; if(atoi(guess)=answer)a=true; if(atoi(guess)answer)printf(n,atoi(guess); if(atoi(guess)answer)printf(n,atoi(guess); printf(恭喜您猜数正确!您共尝试了%d次!n,p); return p;int main() A:bool b = false; char login30; char ip16; char port5; printf(nn); while(b=false) gets(login); if(login0!=M) printf(nn); if(login7= ) int p,p_i=0; while(loginp_i+8!= ) ipp_i=loginp_i+8; p_i+; ipp_i=0; b=true; WORD sockVersion = MAKEWORD(2,2); WSADATA data; if(WSAStartup(sockVersion, &data) != 0) return 0; SOCKET sclient = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if(sclient = INVALID_SOCKET) printf(); return 0; sockaddr_in serAddr; serAddr.sin_family = AF_INET; serAddr.sin_port = htons(5208); serAddr.sin_addr.S_un.S_addr = inet_addr(ip); if (connect(sclient, (sockaddr *)&serAddr, sizeof(serAddr) = SOCKET_ERROR) printf(n); closesocket(sclient); return 9; printf(nnn); char username20; char type20; b=false; while(b=false) gets(type); if(type5= ) int n,n_i=0; while(typen_i+6!=0) usernamen_i=typen_i+6; n_i+; usernamen_i=0; b=true; else printf(nn); printf(n); char sendData20 = #R_; strcat(sendData,username); char recData255; G: send(sclient, sendData, strlen(sendData), 0); Sleep(500); int ret = recv(sclient, recData, 255, 0); if(ret 0) recDataret = 0x00; answer=atoi(recData); memset(recData,0,255*sizeof(char); Z: printf(nnnn,username); gets(type); if(type0=G) int gtime=guessing(type); char score8=*; sprintf(score+1,%d,gtime); int stat = send(sclient, score, strlen(score), 0); Sleep(2000); goto G; if(type0=L) char sendpata20=#Top; sendpata4=0; char rRank800; int go = s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO/TS 19677:2025 EN Assessing the adverse impact of wildland fires on the environment and to people through environmental exposure
- 【正版授权】 ISO 17987-2:2025 EN Road vehicles - Local Interconnect Network (LIN) - Part 2: Transport protocol and network layer services
- 【正版授权】 ISO 13610:2025 EN Sludge recovery,recycling,treatment and disposal - Determination of calorific value of sludge
- Brand KPIs for milk:Silk in the United States-英文培训课件2025
- 小学生笔画课件
- 2025年新高一英语人教新版尖子生专题复习《完形填空》
- 口才课自我介绍课件视频
- 2025年金融行业AI伦理监管政策执行与效果评估报告
- 乡镇流动厨师管理办法
- 企业协议酒店管理办法
- 肩袖修补术护理
- 政府委托代建合同范本
- DB37-T 1933-2022 氯碱安全生产技术规范
- 人教版英语九年级全一册单词表(合订)-副本
- 印章保管责任书
- 《论坛运营社区运营》课件
- 骨科降低卧床患者便秘发生率医院护理质量QCC改善案例
- 2025年上海市各区高三语文一模试题汇编之文言文二阅读(含答案)
- 低钠血症的中国专家共识2023解读
- 办公机器和设备出租行业现状分析及未来三至五年行业发展报告
- 楼面找平层裂缝修复方案
评论
0/150
提交评论