计算机网络2015年至2016年第一学期实验学期
所在学院
数信学院
年级13级
专业班级
信息与计算科学1班学生姓名学号201330120117教师评成绩
指导教师
目录:
1.背景介绍.......................................................................................................................................11.1对socket的认识..................................................................................................................11.2对javasocket的认识...........................................................................................................12.可行性分析...................................................................................................................................13.需求分析.......................................................................................................................................13.1软件定义...............................................................................................................................13.2软件功能需求......................................................................................................................23.2.1客户端........................................................................................................................23.2.2服务器........................................................................................................................23.3运行环境要求......................................................................................................................24.总体设计.......................................................................................................................................24.1软件数据流设计..................................................................................................................24.2软件模块结构设计..............................................................................................................35.详细设计.......................................................................................................................................35.1数据库设计..........................................................................................................................35.1.1用户信息...................................................................................................................35.1.2聊天内容................................................................................................................35.1.3实现代码...................................................................................................................35.2模块设计..............................................................................................................................45.2.1模块设计思想...........................................................................................................45.2.2界面设计...................................................................................................................45.2.3逻辑控制设计...........................................................................................................56.实现...............................................................................................................................................67.测试...............................................................................................................................................78.总结...............................................................................................................................................9编程类课程实习报告
题目时间成绩教师评阅:□程序目的明确□操作步骤正确□报告文稿(表格、程序、数据库、网页)符合要求□程序结果正确□分析总结全面□报告格式规范课程实习检查情况记录:□思路清晰;语言表达准确,概念清楚□准备工作充分,具备必要的报告资料;报告在规定的时间内完成□回答问题有理论依据,基本概念清楚。主要问题回答简明准确□对前人工作有改进或突破,或有独特见解年月日Socket通讯软件设计性质√应用性√设计性√综合性评阅教师签名:1.背景介绍1.1对socket的认识
Socket(套接字)是一种基于TCP/IP的编程接口。它采用客户/服务器通信机制,使客户端和服务器端通过Socket接口在网络上实现连接和数据交换。它提供了一系列系统调用,使用户可以方便地实现TCP和UDP等多种网络协议的通信。它使用户可以在网络协议上工作而不必对该网络协议有非常深入的了解。这样编写的程序可被迅速移植到任何支持Socket的网络系统中去。
1.2对javasocket的认识
用Java语言编程实现Socket通信,其原理与使用其他语言基本相同,不同之处是:(1)java是跨平台的编程语言,所以用java编写的Socket通信程序可以工作在所有支持TCP/IP协议和java的软硬件平台上;(2)因为Java是面向对象的语言,所以在编程中需要使用一些与Socket有关的系统类,其中用于实现流Socket的类主要有:InetAddress类,Socket类,ServerSocket类。
InetAddress类的对象用来保存IP地址,Socket类的对象用来创建Socket通信的客户端,Socket通信的服务器端则有ServerSocket类的对象来实现,用上述几个类就可以很方便的生成用户自己的TCP/IP通信程序。这几个类都属于Java.net包,大部分用来处理网络操作的系统类都包含在这个包中,所以用JAVA编写程序是,一般要在程序开始部分用import语句加载这个包,以便引入这些类。用JAVA语言编写Socket程序的过程就是创建和定义Socket类和ServerSocket类的子类的过程。
2.可行性分析综合各方面因素的考虑,对软件的可行性分析有如下分析:
技术方面考虑,虽然小组成员之前未有人做过相关网络编程的项目或练习,所以技术方面存在的障碍是最大的困难。但是,我们小组在接受任务以来,成员斗志昂扬,积极从华南农业大学图书馆借阅相关书籍学习,力争克服难关。因此,我们对此次软件的设计信心十足。
其次,存在较大困难的是时间。这是我们进入大三的第一个学期,我们明显感觉到了时间的宝贵性,随之而来的是相关专业课的增多,要求我们投入更多的时间上课和学习。所以,时间问题是另一大问题,至少,我们在十一周之内只能挤时间来完成软件的设计,而无法专心投入太多时间。
因此,我们在克服如上所列出的困难的同时,完成软件的设计还是有可能的。
3.需求分析3.1软件定义
随着各行各业的逐渐信息化,各公司或(商业)机构甚至于个人与外界联系将更为广泛和密切,简单快捷的聊天软件就可以满足快节奏、高效率的现代生活的需求。信息化的社会更加适合这种简易平台的生长,它往往比传统通信工具更加快捷、方便,而且还可以进行聊天内容的查询,对人们更加方便。
因此,此软件旨在方便人们聊天的和聊天的查询。
13.2软件功能需求
3.2.1客户端
1、界面、事件监听;2、发送消息;3、接受消息;4、发送文件;5、接收文件;
6、登录和注册,向服务器发送注册或登录请求;7、查询聊天记录,向服务器发出聊天记录请求。
3.2.2服务器
1、初始化在线列表,启动服务器等待客户端连接;
2、接收消息判断类型(1登录、2注册、3发送消息、4发送文件、5接收文件、6查询聊天记录、7离线通知);
客户端登录信息查询,返回好友列表给客户端,或返回字符串给客户端;客户端注册信息查询,返回字符串给客户端;转发消息给目标客户端,并写入数据库;
得到发送文件请求并通知目的客户端接收文件;得到接收文件请求,开始传送文件;查询聊天记录,并发送给客户端;
3.3运行环境要求
Windows系列操作系统,java运行环境下,SQLserver数据库服务。
4.总体设计4.1软件数据流设计
24.2软件模块结构设计
我们本着高内聚,低耦合的软件模块划分思想,对软件的模块结构设计如下:
5.详细设计5.1数据库设计
5.1.1用户信息
用户名密码userNamepassWord5.1.2聊天内容
发送者接受者日期时间内容senderreceiverdatatimecontent5.1.3实现代码
--创建数据库createdatabasechatusechat--创建数据表3createtableusers(usernamechar(10)primarykey,passwordchar(12)notnull,);createtablechatlog(messagedatedatenotnull,messagetimetimenotnull,senderchar(10)foreignkeyreferencesusers(username),receiverchar(10)foreignkeyreferencesusers(username),messagetextnotnull,primarykey(messagedate,messagetime,sender,receiver));5.2模块设计
5.2.1模块设计思想
除文件发送与接收模块之外,其他模块都以客户端与服务器的字符串通信为基础,在字符串前段附加客户端所请求的动作及动作执行所需要的参数;服务器通过split()方法解析字符串,执行相应的请求。其中请求类型有如下几种:[login]登录[register]注册[message]消息[sendfile]发送文件[forfile]接收文件[forchatlog]聊天记录[leave]离线5.2.2界面设计
登录界面:用户列表:4聊天界面:5.2.3逻辑控制设计
56.实现服务器、登录及注册窗口:好友列表及聊天窗口:67.测试服务器启动与登录成功的提示:7聊天进行中与服务器监视用户的动作:用户聊天记录的查询88.总结9
因篇幅问题不能全部显示,请点此查看更多更全内容