软件开发实习讲义-基于C-S模式的软件开发(题目).ppt
《软件开发实习讲义-基于C-S模式的软件开发(题目).ppt》由会员分享,可在线阅读,更多相关《软件开发实习讲义-基于C-S模式的软件开发(题目).ppt(85页珍藏版)》请在三一办公上搜索。
1、软件开发实习讲义,提纲,实验题目及要求技术一:Socket网络编程;技术二:软件开发文档编写规范;技术三:统一建模语言UML;技术四:Rational Rose工具与UML;技术五:开发环境;,提纲,实验题目及要求技术一:Socket网络编程;技术二:软件开发文档编写规范;技术三:统一建模语言UML;技术四:Rational Rose工具与UML;技术五:开发环境;,实验题目及要求,【实验题目】基于客户端/服务器模型的软件开发【题目概述与总体要求】题目概述:设计一个XXX网络应用程序。总体要求:按照分析、设计、编码、调试和测试的软件开发过程完成这个应用程序;提交需求分析、概要设计、详细设计文档
2、以及UML设计文件(其中包括用例图,类图,状态图,部署图)。建议客户端和服务器的设计都使用可视化界面,在界面中加入相应的功能按钮或菜单,便于操作和演示。,实验题目及要求,【题目具体要求】客户端根据指定的ip地址和端口号连接到服务器;客户端可以断开和服务器的连接;服务器可以选定某个已登录的客户端,断开与其的连接;客户端可以向服务器发送文字信息;服务器要能显示所有登录客户端的ip地址、端口号信息等:服务器上需要显示客户端登录和断开的提示信息;服务器显示所有登录客户端所发送的文字信息、数目,及对应的客户端信息,标识该文字信息是哪个客户端发送;服务器能够从所有接收到文字信息中,筛选从某个登录客户端发送
3、的文字信息和数目。客户端可以显示服务器发送的文字信息及其数目;服务器可以选定某个已登录的客户端,向其发送文字信息;客户端可以向服务器发送文件。服务器显示客户端发送的文件数和当前发送的文件及对应客户端信息。15必须实现,67为加分需求,89选作。,实验题目及要求,【编程提示】开发环境和编程语言可自由选择;服务器设计一种数据结构来维护每一个客户端的信息,包括socket,IP地址,端口号、收到文字信息的数目,文字信息,其中的文字信息应该设计成另一个数据结构用来存储一个个文字信息,包括文字字符串、字符串长度。如果能使用数据库存储,当然更好。本题目中要求实现的功能较多,为了更好的开发调试,可以将上一个
4、功能实现并测试成功后,再实现其他功能。用表单显示信息。,实验题目及要求,【实验步骤】根据题目,撰写需求分析、概要设计、详细设计文档;根据需求,利用Rational Rose工具设计UML建模图(用例图、类图、状态图、部署图);根据UML建模图在开发环境中进行软件开发;实现功能15,并进行调试与测试;实现功能67,并进行调试与测试;有时间的同学可以实现功能89;提交程序源代码及文档(包括设计文档和UML图);编写实验报告,实习结束后1周内由班长交齐。,实验题目及要求,【实验报告内容】题目要求的所有文档和设计图;设计的思路和关键数据结构;测试数据,包括对于异常情况的处理;软件使用说明书;在设计、实
5、现和测试中发现的问题及解决方案;软件开发实习总结。【实验上机要求】开放式上机;第二周的周六、周日集中验收。,提纲,实验题目及要求技术一:Socket网络编程;技术二:软件开发文档编写规范;技术三:统一建模语言UML;技术四:Rational Rose工具与UML;技术五:开发环境;,网络编程模型,基于有连接网络程序的执行过程服务程序启动客户程序启动客户端与服务器建立连接客户端发送请求服务器处理请求,返回响应服务器断开连接,等待下一个请求,网络编程模型,基于TCP编程模型,主要内容,创建网络端点socket连接服务器connect绑定服务器地址和端口bind监听端口listen接受客户端连接ac
6、cept关闭socketclose接收和发送数据read、write,网络编程模型,基于TCP编程模型,基于TCP编程模型,什么是套接字,创建网络端点socket,/1.创建网络端点int sockfd=socket(AF_INET,SOCK_STREAM,0);if(sockfd=-1)printf(can;t create socketn);exit(1);,创建网络端点socket,创建网络端点socket,socket(套接字)网络传输的端节点支持多种协议UNIX、INET、IPX支持多种类型流式(STREAM)数据报(DGRAM)原始(RAW),创建网络端点socket,int so
7、cket(int family,int type,int protocol)功能:创建socket描述符参数:family(协议簇):AF_INET、AF_UNIXtype(类型):SOCK_STREAM、SOCK_DGRAM、SOCK_RAWprotocol(协议):默认为0返回值:0socket描述符,-1失败,系统全局变量errno为错误代码,创建网络端点socket,socket数据结构,socket地址,socket地址Linux采用通用socket地址兼容各种协议UNIXINET,通用的地址结构:struct sockaddr/*地址类型AF_xxx*/u_short sa_fam
8、ily;/*协议地址,不同的协议地址格式不同*/char sa_data14;,socket地址,TCP/IP协议的socket地址,struct sockaddr_in short sin_family;/*AF_INET*/u_short sin_port;/*端口号,网络字节顺序*/struct in_addr sin_addr;/*IP地址,网络字节顺序*/char sin_zero8;/*填充字节,必须为全零*/;,struct in_addr union struct u_char s_b1,s_b2,s_b3,s_b4;S_un_b;struct u_short s_w1,s_w
9、2;S_un_w;u_long S_addr;S_un;,socket地址,TCP/IP协议的socket地址常用地址形式(字符串):“127.0.0.1”地址转换函数inet_aton(const char*cp,struct in_addr*inp);char*inet_ntoa(struct in_addr in);,/字符串形式地址转换为网络地址形式struct sockaddr_in addr;inet_aton(“219.245.78.159”,字节顺序,主机字节顺序(以16位整数0 xA130为例)little-endian顺序低字节在前Intel处理器使用little-endi
10、anbig-endian顺序高字节在前sun工作站使用big-endian顺序,字节顺序,网络字节顺序统一表示方式采用big-endian顺序主机字节顺序和网络字节顺序的转换unsigned short int htons(unsigned short int hostshort)unsigned long int htonl(unsigned long int hotlong)unsigned short int ntohs(unsigned short int netshort)unsigned long int ntohl(unsigned long int netlong),socke
11、t地址,/指定服务器地址struct sockaddr_in srvaddr;bzero(,基于TCP编程模型,绑定服务器地址和端口,int bind(int sockfd,struct sockaddr*myaddr,int addrlen);功能:绑定本地地址和端口参数:sockfdsocket描述符myaddr自己的地址addrlen地址结构长度返回值:0成功,-1失败,errno为错误代码,绑定服务器地址和端口,int bind(int sockfd,struct sockaddr*myaddr,int addrlen);说明服务器和客户端都可以绑定socket地址,但通常客户端不需要
12、绑定自己的socket地址。不绑定地址时系统自动分配一个端口,并用该端口和本机ip地址填充客户端socket地址.注意INADDR_ANY,绑定服务器地址和端口,/绑定服务器地址和端口if(bind(sockfd,(struct sockaddr*),绑定服务器地址和端口,INADDR_ANY绑定任何网络设备接口,适合于多IP主机对于IP地址经常变化的情况也适用,struct sockaddr_in srvaddr;srvaddr.sin_addr.s_addr=htonl(INADDR_ANY);,基于TCP编程模型,基于TCP编程模型,如何标识一个连接:IP地址+端口号,连接服务器,int
13、 connect(int sockfd,struct sockaddr*servaddr,int addrlen)功能:连接服务器参数:sockfdsocket描述符servaddr服务器地址addrlen地址结构长度返回值:0成功,-1失败,errno为错误代码,连接服务器,int connect(int sockfd,struct sockaddr*servaddr,int addrlen)说明:对一个socket描述符不能两次使用connect函数,int sockfd=socket();connect(sockfd,);connect(sockfd,);,连接服务器,/连接服务器if(
14、connect(sockfd,(struct sockaddr*),基于TCP编程模型,监听端口,int listen(int sockfd,int backlog)功能:监听本地地址和端口参数:sockfd已绑定的socket描述符backlog以完成连接,等待接受的队列长度返回值0成功,-1失败,errno为错误代码,监听端口,int listen(int sockfd,int backlog)说明执行listen函数后socket转换成被动socket,可以接受连接,TCP协议为每个侦听socket维护两个队列:未完成连接队列和已完成连接队列,backlog指定已完成连接队列的最大长度,
15、监听端口,/监听端口if(listen(sockfd,BACKLOG)=-1)printf(listen errorn);exit(1);,基于TCP编程模型,接受客户端连接,int accept(int sockfd,struct sockaddr*clientaddr,int addrlen);功能:接受连接参数:sockfdsocket描述符clientaddr客户端地址addrlen地址结构长度返回值0成功,返回新的socket描述符标识已接受的连接,-1失败,errno为错误代码,接受客户端连接,int accept(int sockfd,struct sockaddr*client
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 开发 实习 讲义 基于 模式 题目
链接地址:https://www.31ppt.com/p-6610943.html