资源描述:
《《windows网络程序设计》实验指导书new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《Windows网络程序设计》课程实验指导书课程名称:Windows网络程序设计实验学时:21适用专业:数字媒体技术课程类别:必修一、实验教学任务与目的:《Windows网络程序设计》课程是数字媒体技术专业的必修课。实验的目的是为了配合课堂教学,进一步强化使用Winsock的网络程序设计技术。具体内容主要包含TCP/IP的实现技术、网络程序设计基本知识、TCP编程、UDP编程、网络综合程序设计、Winsock常用函数介绍及其应用等内容。二、实验项目内容、基本要求与学时分配序实验实验实验实验要实验项目名称实验内容提要号学时类别类型求tcp/ip网络程序框架专业设
2、计基于tcp的函数,使用13验证必做建立基础winsockapi调用2基于udp的网络程序专业综合必做设计基于udp的函数,使用3设计基础winsockapi调用3利用MFC进行专业综合必做使用MFC框架,构造网络6Winsock编程基础聊天器。4构建网络五子棋游戏专业综合必做使用Csocket类做一个五子9基础棋游戏,能够进行网络游戏注:1、实验类别:基础、专业基础、专业、其它。2、实验类型:演示、验证、综合、设计研究、其它。3、实验要求:必做、选做。三、实验项目的目的及要求实验一Tcp/ip网络程序框架建立(3学时)(一)实验目的和要求:1.设计基于tcp
3、的函数,逐步了解winsockapi调用方法2掌握winsock网络程序的吉本框架(二)实验设备及材料:1.微机2.安装MicrosoftVisualC++6.0(三)实验内容1手工输入教科书P188例子8.2.2服务器程序和8.2.3客户机程序,掌握CS模式程序的基本方法。在visualc++6.0平台下,file->new->projects->win32consoleapplication.生成一个projectname为tcp_server的项目。再通过file->new->files生成一个C++的空文件。输入例子8.2.2的代码。编译通过后,链接会
4、出现问题。在菜单project里面选择settings->link里面的object/librarymodules添加wsock32.lib。想想,为什么?在visualstudio2005下面如何操作?自己尝试2.创建Windows时间服务器程序,侦听1234端口,发送时间的字符形式,实现由RFC-867定义的daytime协议。3.创建Windows时间客户端程序,向daytime服务器的1234端口,获取时间并显示。4.在时间网络客户/服务器模式基础上,进行改动,使得客户机和服务器能够进行消息发送。将服务器中的代码从while(1){connection
5、Fd=accept(serverFd,(structsockaddr*)NULL,NULL);if(connectionFd>=0){currentTime=time(NULL);sprintf(timebuffer,"%s",ctime(¤tTime));printf("已有%d个访问者",i++);send(connectionFd,timebuffer,strlen(timebuffer),0);//char*msg="hello,it'samessagefromqianguiping";//sprintf(timebuffer,"%s
6、n",msg);//send(connectionFd,timebuffer,strlen(timebuffer),0);closesocket(connectionFd);}}改为如下代码,想想看,为什么这么改?while(1){//操作系统利用第二个参数来返回新创建的套接字的地址结构;//操作系统利用第三个参数来返回新创建的套接字的地址结构的长度connectionFd=accept(serverFd,(structsockaddr*)NULL,NULL);while(connectionFd>=0){currentTime=time(NULL);spri
7、ntf(timebuffer,"%s",ctime(¤tTime));printf("第%d次通话",i++);send(connectionFd,timebuffer,strlen(timebuffer),0);charmsg[100];scanf("%s",msg);sprintf(timebuffer,"%s",msg);send(connectionFd,timebuffer,strlen(timebuffer),0);if((in=recv(connectionFd,timebuffer,MAX_BUFFER,0))>0){tim
8、ebuffer[in]=0;print