




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验总成绩:报告份数:xxxx学院xxxxxxxxxxx 学院-课程设计报告订线专业班级:学生姓名:学号班内序号:年 月 日第五学期实习报告课程设计目的与任务1.目的:(1)加深对计算机网络的根本概念和原理, 以及网络编程接口及 Winsock 概念、编程原理的理解;(2)提升学生网络应用与编程的水平.学生在七个设计题目中选择一个, 并可选择任意开发工具来设计完成,提升其分析与解决问题的水平,为大 型网络编程打下坚实根底;(3)通过撰写课程设计报告,锻炼学生的逻辑组织和语言表达水平;(4)培养学生理论运用于实践的综合应用和设计创新水平.2.任务:(1)设计完成与网络相关题目的根本功能要求;(2
2、)调试运行之后,要求边演示边解释设计的思想、 过程及采用的方法.(3)按一定的标准要求,撰写课程设计报告.课程设计的根本要求1 .熟练掌握网络的根本概念和原理;2 .掌握网络编程接口及 Winsock概念及编程原理;3 .掌握基于TCP/IP的Internet编程技术;4,掌握各种软件开发工具的使用过程及方法.课程设计题目:猜数游戏一.猜数游戏的要求:(1) .软件名:猜数游戏(分效劳器和客户端两局部)(2) .功能:游戏后台运行一个效劳器软件,游戏者通过客户端登录后,效劳器 随机产生一个1-100之间的随机数供游戏者猜,游戏者从客户端输入一个数值, 如果该数比设定的数大,软件提示:“大了,如
3、果该数比设定的数小,软件提示:“小了,假设相等,返回“猜对了,您共猜了 *次.效劳器同时记录并维护一个 游戏玩家的TOP10B行榜,供玩家查询.(3) .编程语言及工具:自选(如 VR JAVA C# Delphi、V.(4) .效劳端:接受客户端的命令请求并提供相应的效劳.(5) .客户端:完成游戏人机界面的设计,以命令的方式向效劳器请求,并显示 相应的提示.主要的命令有:1. CONNECT 1刖址端口号指定游戏效劳器的IP地址和端口号,连接到效劳器.响应:连接成功/失败.2. LOGIN用户名用户登录,报告效劳器玩家的名字.响应:成功/失败.3. GUES做字猜数.响应:大了 /小了/对
4、了.4. LISTTOP10请求显示TOP10HF行榜.响应:显示TOP1用卜行榜.5. EXIT退出游戏.课程设计原理:在WIN32平台上的WINSOCK程都要经过以下步骤:定义变量-获得WINDOCK本- 加载WINSOCK-初始化- 创立套接字-设置套接字选项- 关闭套接字-卸载WINSOCK-释放资源以下是 WINSOCK C/S勺建立过程:效劳端客户端1.初始化WSA1.初始化WSA2. S SOCKET2. S SOCKET3.绑定 SOCKET3.连接效劳器4.在指定的端口监听4.发送和接收数据5.接耍一个连接5.断开连接6.发送和接收数据7.断开连接三.程序源代码效劳器:#in
5、clude <stdio.h>#include <winsock2.h>#include <time.h>#pragma comment(lib,"ws2_32.lib") #define SERVER_PORT 5208 int answer = 0;struct Samplechar name 11;int s;score200;void randanswer()srand( (unsigned)time( NULL );answer = (rand()%99)+1;void sorta()int a,j;for(a=19;a>
6、0;a-)for(j=0;j<20;j+)if(scorej.s> 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;t<200;t+)scoret.s=0;WORD sockVersion = MAKEWORD(2,2);WSADATA wsaDat
7、a;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(b
8、ind(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)sClien
9、t = accept(slisten, (SOCKADDR *)&remoteAddr, &nAddrlen);bool c=true;while (c=true)if(sClient = INVALID_SOCKET)printf("<接受失败!>");continue;)printf("<客户端连接:s>rn", inet_ntoa(remoteAddr.sin_addr);int ret = recv(sClient, revData, 50, 0);if(ret > 0)(revDataret = 0
10、x00;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)
11、 revDataret = 0x00;if(revData0='*')(scoreplayer.s=atoi(revData+1);if(revData0='!')(c=false;if(revData1='T')(sorta();char rank800=""int d;for(d=0;d<10;d+)(char temp30=""sprintf(temp,"%d,Player:%s,Times:%dn,d+1,,scored.s);strcat(rank,temp)
12、;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 <stdio.h>#include <stdlib.h>#include <winsoc
13、k2.h>#include <windows.h>#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')guess
14、p_i=typep_i+6;p_i+;guessp_i='0'p+;if(atoi(guess)=answer)a=true;if(atoi(guess)<answer)printf("<您猜想的数据%d比随机产生的数字小!>n",atoi(guess);if(atoi(guess)>answer)printf("<您猜想的数据%d比随机产生的数字大!>n",atoi(guess);printf("恭喜您猜数正确!您共尝试了 故!n",p);return p;int main()A:
15、bool b = false;char login30;char ip16;char port5;printf("<请您输入正确的IP地址以及PORT以连接到效劳器!>n<输入格式 CONNECT IPADRESS PORT>n");while(b=false)gets(login);if(login0!='M') printf("<请您输入正确的IP地址以及PORTZ连接到服务器!>n< 输入格式 CONNECT IPADRESS PORT>n");if(login7=''
16、)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("<inval
17、id socket !>"); 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
18、 9; printf("< 连接成功!>n<请设置您的用户名(39个英文字母)>n<输入格 式:LOGIN username>n"); 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 pr
19、intf("<请设置您的用户名(39个英文字母)>n<输入格式:LOGINusername>n");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 >
20、0)recDataret = 0x00;answer=atoi(recData);memset(recData,'0',255*sizeof(char);Z:printf("< %s您好,欢送进入猜数游戏!!>n< 输入格式:GUESS NUMBER(1100)>n<俞入格式:LISTTOP10>n<输入格式:EXIT>n",username);gets(type);if(type0='G')int gtime=guessing(type);char score8="*"sp
21、rintf(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 = send(sclient, sendpata, strlen(sendpata), 0);int ret = recv(sclient, rRank, 800, 0);printf("=
22、二=猜数游戏前十名排行榜=n");puts(rRank);Sleep(2000);goto G;if(type0='E')send(sclient, "!", 1, 0);WSACleanup();return 0;else goto Z;.程序运行结果效劳器:?客户端连接:12788.1>URJLEE 75H:惭建文件夹Debugserver.exe'URJLEE75游或反黑LEE,游戏次数:2 ?客户端连接:127.00.1)URJLEE 65客户端:您蒯入正确的H地址以及PORT以连接到效劳器;CONNECT UFAERESSl PORT >酒用户名门F个英文字母> >二:LOGIN usEnn
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 焦作大学《数学教学技能综合训练》2023-2024学年第一学期期末试卷
- 企业竞争策略研究报告
- 信阳农林学院《标志设计》2023-2024学年第二学期期末试卷
- 漯河食品职业学院《统计学原理与实务》2023-2024学年第二学期期末试卷
- 大连民族大学《OS开发技术》2023-2024学年第二学期期末试卷
- 天津中德应用技术大学《节能技术》2023-2024学年第二学期期末试卷
- 兰州职业技术学院《中医文献学》2023-2024学年第一学期期末试卷
- 大连交通大学《项目管理及建设监理》2023-2024学年第二学期期末试卷
- 大连财经学院《音乐教育史》2023-2024学年第一学期期末试卷
- 2025年广东省惠州惠城区五校联考初三期中检测试题英语试题试卷含答案
- 七年级 人教版 地理 第八章《第二节 欧洲西部》课件 第三课时
- 克缇奖金制度
- 2024-2025学年人教新目标英语八年级下册期末综合检测卷(含答案)
- 331金属晶体课件高二化学人教版选择性必修2
- 矿山矿石采购合同模板
- 临床护理实践指南2024版
- 2024年浪潮数字企业技术有限公司社会招聘(105人)笔试核心备考题库及答案解析
- 第47届世界技能大赛江苏省选拔赛竞赛技术文件-混凝土建筑项目
- 白蚁防治施工方案
- 2024年新人教版四年级数学下册《第6单元第2课时 小数加减法》教学课件
- 国开2024年《数据库运维》形考1-3
评论
0/150
提交评论