socke通讯系统课程设计文档

上传人:第*** 文档编号:56884859 上传时间:2018-10-16 格式:DOC 页数:18 大小:291.50KB
返回 下载 相关 举报
socke通讯系统课程设计文档_第1页
第1页 / 共18页
socke通讯系统课程设计文档_第2页
第2页 / 共18页
socke通讯系统课程设计文档_第3页
第3页 / 共18页
socke通讯系统课程设计文档_第4页
第4页 / 共18页
socke通讯系统课程设计文档_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《socke通讯系统课程设计文档》由会员分享,可在线阅读,更多相关《socke通讯系统课程设计文档(18页珍藏版)》请在金锄头文库上搜索。

1、* 实践教学实践教学*软件学院软件学院2015 年春季学期Java 课程设计课程设计 说明书题题 目:目: SocketSocket 网络通信程序设计网络通信程序设计 专业班级:专业班级: 软件三班软件三班 姓姓 名:名: 田森华田森华 学学 号:号: 14177003081417700308 指导教师:指导教师: 高玮军高玮军 成成 绩:绩: i目录目录摘要摘要I序言序言.II1、系统需求分析、系统需求分析11.1 需求分析11.2 可行性分析 .11.2.1 经济可行性.11.2.2 技术可行性.21.2.3 社会可行性.22、 设计思路设计思路32.2 设计目的32.1 设计思想 .32

2、.3 设计内容33、详细设计、详细设计43.1 服务端程序 .43.2 客户端程序 .43.3 流程图54、运行调试与分析讨论、运行调试与分析讨论64.1 运行调试 .64.2 分析讨论75、设计体会与小结、设计体会与小结9参考文献参考文献10致谢致谢11附录附录 I:源代码(带注释):源代码(带注释).12I摘要摘要Socket(套接字)是一种基于 TCP/IP 的编程接口。它采用客户/服务器通信机制,使客户端和服务器端通过 Socket 接口在网络上实现连接和数据交换。它提供了一系列系统调用,使用户可以方便地实现 TCP 和 UDP 等多种网络协议地通信。它使用户可以在网络协议上工作而不必

3、对该网络协议有非常深入的了解。这样编写的程序可被迅速移植到任何支持 Socket 的网络系统中去。本文通过主要利用 Java Socket 类实现双机通信,实现一个简单的服务器,客户端聊天通信工具。并对 Java Socket 的实现进行简单的分析和讲解,通过本文以达到对 Socket 的原理有一个较清晰的认识。关键词:关键词:套接字、 SocketServer类、客户机/服务器模式II序言序言随着计算机网络的快速发展,带动了 Java 语言的发展,Java 越来越成为网络上广为流行的编程语言。Java 是由 SunMicrosystems 公司于 20 世纪末推出的一门面向对象程序设计语言(

4、简称 Java 语言) 。用 Java 实现的支持 Java applet 的浏览器充分的展示出了 Java 的优势和魅力:跨各种操作系平台、实现动态的 Web 技术、安全的语言权限检查环境、JDK 类库提供的丰富网络类库,易于实现网络编程的开发。Socket 是 Java 网络编程的基础,本文就是从套接字的基本原理和使用方法出发,并通过一个简单网络通信例子,讲述在 Java 中使用 Socket 进行网络编程。Socket(InetAddress address, int port, boolean stream);连接到指定 IP 地址,主机端口和数据报方式的流。Socket(InetAd

5、dress address, int port, boolean stream);连接到指定 IP 地址,主机端口和数据报方式的流。服务器端程序任务主要是监听,等待客户机连接,建立一个等待客户端连接的ServerSocket 套接字。构造方法如下:public ServerSocket(int port); 连接到的特定端口。public ServerSocket(int port, int backlog); 在声明构造方法时候,必须对创建的 Socket 或 ServerSocket 捕获异常或抛出例外。11、系统需求分析系统需求分析1.11.1 需求分析需求分析为了开发出符合要求的网络聊

6、天程序,首先必须知道使用者的需求。对需求的深入理解是开发工作获得成功的前提条件,它对目标项目提出完整、准确、清晰、具体的要求。首先,服务器需要同时连接很多个用户,并能提供给这些连接用户所需要的任务处理请求,这就要求服务器能同时处理多个 Socket 连接。服务器模型一般分为循环服务器和并发服务器,循环服务器一次只能处理一个连接,也就是说同一时间只能由一个用户连接到服务器进行消息处理,这种情况是不被允许的。因此我们将采用多线程方式的并发服务器来设计服务器端,这样将从很大程度上提高服务器的运行效率。其次,客户端只需要连接到服务器便可以进行任务的处理工作,因此客户端的主要性能要求为图形界面运行的稳定

7、性和对出错信息的及时反映。当一个窗体出现问题时能够及时的处理,让主程序不受影响。再者,所有的应用程序在运行过程中都会出现出错的情况,这种错误可能来自于程序本身,也有可能是用户操作的失误所造成的。当有错误发生时,我们该有一个很好的机制来保障错误能够及时的被排除。当应用程序出现了错误的时候我们就需要程序能提供给我们出错的信息,这样用户就能够很快的找出具体的出错原因,以便寻找合理的途径去解决它。1.21.2 可行性分析可行性分析可行性分析也称为可行性研究。它是以系统调查为基础,针对开发新系统是否具有必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,从而避免投资失误,保证新系统成功

8、开发。可行性研究是为了用最小的代价在尽可能短的时间内确定问题能否解决。可行性分析包括以下几个方面的内容:1.2.1 经济可行性经济可行性从经济可行性角度出发,在开发系统的过程中,必须要考虑如何节约开发成本,缩短开发周期,用最少的成本获取最大的回报。为了保证软件产品的质量,系统的开2发周期一般都是在一个月左右,并且要保证有充裕的时间进行调研和测试。开发该网络通信系统所需的软件环境(Eclipse 开发工具和数据库 MySQL)和所需的硬件环境(计算机及其相关硬件)在机房即可满足,所以在经济方面是可行的。1.2.2 技术可行性技术可行性该系统使用的开发语言是 JAVA,由于 JAVA 语言具有跨平

9、台性,所以很多编程者都会选择它。经过多年的发展 JAVA 虚拟机已经具有很高的版本,在性能上也有了很大的提高。本系统采用 C/S 架构。因为 C/S 具有一定的灵活性、通用性和易操作性等特点,对用户来说是一个比较好的选择。目前这种架构在系统架构方面被广泛采用,在系统架构上已经积累了大量的经验,所以本系统在技术上是可行的。1.2.3 社会可行性社会可行性随着计算机的普及和发展,以及互联网技术的发展,很多公司和企业都能提供局域网信息服务。而网络聊天系统只需要用户的电脑进入局域网就能访问,不必购买其他任何昂贵设备,大大节约了资金。无论从技术可行性、经济可行性还是社会可行性来说,系统的设计与实现都是可

10、行的。32、设计思路设计思路2.12.1 设计思想设计思想套接字对象在网络编程中扮演着重要的角色,可以用套接字技术编写一个聊天室,服务器为 每个客户启动一个线程。在该线程中通过套接字和客户交流信息,当客户向服务器发送一条聊天 信息“大家好”时,服务器要让所有的这些线程中的输入流写入信息“大家好” ,这样所有的客 户的套接字的输入流就都读取到了这一条信息。如果把信息“你好”发送给特定用户,服务器就 让特定线程中的输入流写入信息“你好” ,那么只有特定客户的套接字的输入流可以读取到这条 信息。2.22.2 设计目的设计目的(1) 、理解 Socket 通信原理。 (2) 、掌握使用 ServerS

11、ocket 类和 Socket 类进行 TCP Socket 通信的程序设计方法。 (3) 、熟悉 ServerSocket 类和 Socket 类的构造方法及常用方法。 (4) 、熟悉通过 URL 访问网络资源方法。 (5) 、通过 URL 类和 URLConnection 类获得指定网络资源内容和文件属性,理解流在获得文件 内容中的作用。2.32.3 设计内容设计内容采用 TCP Socket 通信实现的 Socket 网络通信。 运用 Java 程序编写聊天室,实现简单的聊天功能。它是图形界面,线程,流与文件系统等技 术的综合应用。其界面主要采用了 包,java.io 包等。程序实现了

12、聊天室的基本功能,一 个实现 Socket 通信的网络应用程序,由一个服务器端程序和一个客户端程序组成。服务端程序中 包含一个提供 TCP 连接服务的 ServerSocket 对象和一个参与通信的 Socket 对象,客户端程序中 只包含一个参与通信的 Socket 对象。服务端的 ServerSocket 对象提供 TCP 连接服务,连接成功 后,实际进行通信的是服务端的 Socket 对象和客户端的 ServerSocket。43、详细设计、详细设计3.13.1 服务端程序服务端程序ServerSocket 类用于服务器端,负责侦听和响应客户机端的连接请求,并接受客 户机端发送的数据。

13、ServerSocket 类的主要任务是在服务器端等候其他机器与它连接, 一旦客户机申请建立一个 Socket 连接,ServerSocket 类通过 accept()方法返回一 个对应的服务器端 Socket 对象,以便进行直接通信。当两台计算机连接成功后,服 务器端与客户机端就得到一个真正的“Socket-Socket”连接。此时,就可利用 Socket 类的 getInputStream()和 get()InputStream()方法获取相应端的数据 流。建立 ServerSocket 对象有以下几种方法:ServerSocket (int port)ServerSocket (int

14、port ,int backlog)ServerSocket (int port ,int backlog ,InetAddress bindAddr)其中,backlog 为最大连接数,bindAddr 为服务器所绑定的地址,port 为服务 器侦听的端口号。 在服务器程序中,用了 ServerSocket(int port)构造方法建立接收客户机的 ServerSocket 对象: tryServerSocket server=new ServerSocket(4000); catch(IOException io) 在 ServerSocket 对象 Server 建立后,就可用 acc

15、ept()接收客户的 Socket 连 接呼叫: Socket client=server.accept(); 在连接建立后,服务器端 Socket 对象调用 getInetAddress()方法可以获取一 个 InetAddress 对象,该对象含有客户机端的 IP 地址和域名:area.append(“已连接寒塘渡鹤影:“+client.getInetAddress().getHostName()+“nn“);3.23.2 客户端程序客户端程序Socket 是所有网络协议的基础,也是 JDBC 的基础。Socket 类用于客户机端,在 客户机端通过构造一个 Socket 类建立于服务器的连接。当一个 Socket 连接建立后, 用户就可以从该 Socket 对象中获取输入/输出流。 在客户端程序中,用以下语句建立了 Socket 对象 client,并建立了与服务器之 间的通信“线路”:try5Socket client=new Socket(“127.0.0.1“,4000); area.append(“已连接到冷月葬花魂:“+client.getInetAd

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

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

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