软件开发实习讲义-基于C-S模式的软件开发(题目1)

上传人:宝路 文档编号:48001509 上传时间:2018-07-08 格式:PPT 页数:85 大小:521.39KB
返回 下载 相关 举报
软件开发实习讲义-基于C-S模式的软件开发(题目1)_第1页
第1页 / 共85页
软件开发实习讲义-基于C-S模式的软件开发(题目1)_第2页
第2页 / 共85页
软件开发实习讲义-基于C-S模式的软件开发(题目1)_第3页
第3页 / 共85页
软件开发实习讲义-基于C-S模式的软件开发(题目1)_第4页
第4页 / 共85页
软件开发实习讲义-基于C-S模式的软件开发(题目1)_第5页
第5页 / 共85页
点击查看更多>>
资源描述

《软件开发实习讲义-基于C-S模式的软件开发(题目1)》由会员分享,可在线阅读,更多相关《软件开发实习讲义-基于C-S模式的软件开发(题目1)(85页珍藏版)》请在金锄头文库上搜索。

1、软件开发实习讲义提纲l实验题目及要求l技术一:Socket网络编程;l技术二:软件开发文档编写规范;l技术三:统一建模语言UML;l技术四:Rational Rose工具与UML;l技术五:开发环境;提纲l实验题目及要求l技术一:Socket网络编程;l技术二:软件开发文档编写规范;l技术三:统一建模语言UML;l技术四:Rational Rose工具与UML;l技术五:开发环境;实验题目及要求【实验题目】基于客户端/服务器模型的软件开发【题目概述与总体要求】 题目概述:设计一个XXX网络应用程序。 总体要求:按照分析、设计、编码、调试和测试的软件开 发过程完成这个应用程序;提交需求分析、概要

2、设计 、详细设计文档以及UML设计文件(其中包括用例图 ,类图,状态图,部署图)。建议客户端和服务器的 设计都使用可视化界面,在界面中加入相应的功能按 钮或菜单,便于操作和演示。实验题目及要求【题目具体要求】1.客户端根据指定的ip地址和端口号连接到服务器;2.客户端可以断开和服务器的连接;3.服务器可以选定某个已登录的客户端,断开与其的连接;4.客户端可以向服务器发送文字信息; 5.服务器要能显示所有登录客户端的ip地址、端口号信息等:服务器上需要显示客户端登录和断开的提示信息;服务器显示所有登录客户端所发送的文字信息、数目,及对应的客户端信息,标识该 文字信息是哪个客户端发送;服务器能够从

3、所有接收到文字信息中,筛选从某个登录客户端发送的文字信息和数目 。6.客户端可以显示服务器发送的文字信息及其数目;7.服务器可以选定某个已登录的客户端,向其发送文字信息;8.客户端可以向服务器发送文件。9.服务器显示客户端发送的文件数和当前发送的文件及对应客户端信息。 15必须实现,67为加分需求,89选作。实验题目及要求【编程提示】开发环境和编程语言可自由选择;服务器设计一种数据结构来维护每一个客户端的信息, 包括socket,IP地址,端口号、收到文字信息的数目, 文字信息,其中的文字信息应该设计成另一个数据结构 用来存储一个个文字信息,包括文字字符串、字符串长 度。如果能使用数据库存储,

4、当然更好。本题目中要求实现的功能较多,为了更好的开发调试, 可以将上一个功能实现并测试成功后,再实现其他功能 。用表单显示信息。实验题目及要求【实验步骤】1.根据题目,撰写需求分析、概要设计、详细设计文档 ;2.根据需求,利用Rational Rose工具设计UML建模图(用 例图、类图、状态图、部署图);3.根据UML建模图在开发环境中进行软件开发;4.实现功能15,并进行调试与测试;5.实现功能67,并进行调试与测试;6.有时间的同学可以实现功能89;7.提交程序源代码及文档(包括设计文档和UML图);8.编写实验报告,实习结束后1周内由班长交齐。实验题目及要求【实验报告内容】题目要求的所

5、有文档和设计图;设计的思路和关键数据结构;测试数据,包括对于异常情况的处理;软件使用说明书;在设计、实现和测试中发现的问题及解决方案;软件开发实习总结。【实验上机要求】开放式上机;第二周的周六、周日集中验收。提纲l实验题目及要求l技术一:Socket网络编程;l技术二:软件开发文档编写规范;l技术三:统一建模语言UML;l技术四:Rational Rose工具与UML;l技术五:开发环境;网络编程模型l基于有连接网络程序的执行过程l服务程序启动l客户程序启动l客户端与服务器建立连接l客户端发送请求l服务器处理请求,返回响应l服务器断开连接,等待下一个请求通常情况下服务程序一直处于运行状态面向连

6、接的方式循环服务 器模型网络编程模型l基于TCP编程模型建立连接发送请求返回响应创建网络端点(socket)连接客户端(connect)客户端发送请求(write)客户端接收响应(read)客 户 端创建网络端点( socket)绑定服务器地址和端口(bind)监听端口(listen)接受客户端连接(accept)接收客户端请求(read)回送响应(write)服 务 器主要内容l创建网络端点socketl连接服务器connectl绑定服务器地址和端口bindl监听端口listenl接受客户端连接acceptl关闭socketclosel接收和发送数据read、write网络编程模型l基于TC

7、P编程模型建立连接发送请求返回响应创建网络端点(socket)连接客户端(connect)客户端发送请求(write)客户端接收响应(read)客 户 端创建网络端点( socket)绑定服务器地址和端口(bind)监听端口(listen)接受客户端连接(accept)接收客户端请求(read)回送响应(write)服 务 器基于TCP编程模型l什么是套接字创建网络端点socket /1.创建网络端点 int sockfd=socket(AF_INET, SOCK_STREAM, 0); if(sockfd=-1) printf(“can;t create socketn“); exit(1)

8、; 创建网络端点socket应用程序 (MSN,QQ,FlashGet)Socket (STREAM、DGRAM、RAW)网络协议 (UNIX、INET、IPX)物理信道 (双绞线、同轴电缆、电话线、光缆)Socket (STREAM、DGRAM、RAW)应用程序 (MSN,QQ,FlashGet)网络协议 (UNIX、INET、IPX)创建网络端点socketlsocket(套接字)l网络传输的端节点l支持多种协议lUNIX、INET、IPXl支持多种类型l流式(STREAM)l数据报(DGRAM)l原始(RAW)创建网络端点socketlint socket (int family, in

9、t type, int protocol)l功能:创建socket描述符l参数:lfamily(协议簇):AF_INET、AF_UNIXltype(类型):SOCK_STREAM、 SOCK_DGRAM、SOCK_RAWlprotocol(协议):默认为0l返回值:0socket描述符, -1失败, 系 统全局变量errno为错误代码创建网络端点socketlsocket数据结构socket描述符协议簇服务类型本地IP地址远程IP地址本地端口远程端口socket地址lsocket地址lLinux采用通用socket地址兼容各种协议lUNIXlINETl 通用的地址结构: struct sock

10、addr /*地址类型AF_xxx*/u_short sa_family;/*协议地址,不同的协议地址格式不同*/ char sa_data14; ; socket地址lTCP/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

11、_b3,s_b4; S_un_b;struct u_short s_w1,s_w2; S_un_w;u_long S_addr; S_un; ;socket地址lTCP/IP协议的socket地址l常用地址形式(字符串):“127.0.0.1”l地址转换函数linet_aton(const char *cp,struct in_addr *inp);lchar* inet_ntoa(struct in_addr in);/字符串形式地址转换为网络地址形式 struct sockaddr_in addr; inet_aton(“219.245.78.159”, /网络地址转换为字符串地址形式 p

12、rintf(“%s”,inet_ntoa(addr.sin_addr);字节顺序l主机字节顺序(以16位整数0xA130为例)llittle-endian顺序l低字节在前lIntel处理器使用little-endianlbig-endian顺序l高字节在前lsun工作站使用big-endian顺序30A130A1字节顺序l网络字节顺序l统一表示方式l采用big-endian顺序l主机字节顺序和网络字节顺序的转换lunsigned short int htons(unsigned short int hostshort)lunsigned long int htonl(unsigned long

13、 int hotlong)lunsigned short int ntohs(unsigned short int netshort)lunsigned long int ntohl(unsigned long int netlong)socket地址 /指定服务器地址 struct sockaddr_in srvaddr; bzero( srvaddr.sin_family=AF_INET; srvaddr.sin_port=htons(1234); if(inet_aton(“127.0.0.1“,srvaddr.sin_addr.s_addr)=-1) printf(“addr conv

14、ert errorn“); exit(1); 基于TCP编程模型建立连接发送请求返回响应创建网络端点(socket)连接客户端(connect)客户端发送请求(write)客户端接收响应(read)客 户 端创建网络端点( socket)绑定服务器地址和端口(bind)监听端口(listen)接受客户端连接(accept)接收客户端请求(read)回送响应(write)服 务 器绑定服务器地址和端口lint bind(int sockfd,struct sockaddr *myaddr,int addrlen); l功能:绑定本地地址和端口l参数:lsockfdsocket描述符lmyaddr

15、自己的地址laddrlen地址结构长度l返回值:l0成功,-1失败,errno为错误代码 绑定服务器地址和端口lint bind(int sockfd,struct sockaddr *myaddr,int addrlen);l说明l服务器和客户端都可以绑定socket地址,但通常 客户端不需要绑定自己的socket地址。l不绑定地址时系统自动分配一个端口,并用该端口 和本机ip地址填充客户端socket地址.l注意INADDR_ANY绑定服务器地址和端口 /绑定服务器地址和端口 if( bind(sockfd, (struct sockaddr *) exit(1); 绑定服务器地址和端口l

16、INADDR_ANYl绑定任何网络设备接口,适合于多IP主 机l对于IP地址经常变化的情况也适用struct sockaddr_in srvaddr; srvaddr.sin_addr.s_addr=htonl(INADDR_ANY); 基于TCP编程模型建立连接发送请求返回响应创建网络端点(socket)连接客户端(connect)客户端发送请求(write)客户端接收响应(read)客 户 端创建网络端点( socket)绑定服务器地址和端口(bind)监听端口(listen)接受客户端连接(accept)接收客户端请求(read)回送响应(write)服 务 器基于TCP编程模型l如何标识一个连接:IP地址 + 端口号连接服务器lint connect(int sock

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号