Socke通讯系统课程设计报告文档.doc
《Socke通讯系统课程设计报告文档.doc》由会员分享,可在线阅读,更多相关《Socke通讯系统课程设计报告文档.doc(15页珍藏版)》请在课桌文档上搜索。
1、JavaJava 课程设计课程设计说明书题题 目:目:SocketSocket 网络通信程序设计网络通信程序设计目录目录摘要摘要 I I序言序言 II II1 1、系统需求分析、系统需求分析 1 11.1 需求分析 11.2 可行性分析 1经济可行性 1技术可行性 2社会可行性 22 2、设计思路、设计思路 3 32.2 设计目的 32.1 设计思想 32.3 设计内容 33 3、详细设计、详细设计 4 43.1 效劳端程序 43.2 客户端程序 43.3 流程图 54 4、运行调试与分析讨论、运行调试与分析讨论 6 64.1 运行调试 64.2 分析讨论 75 5、设计体会与小结、设计体会与
2、小结 9 9参考文献参考文献 1010致致 1111附录附录 I I:源代码:源代码带注释带注释1212摘要摘要Socket(套接字)是一种基于 TCP/IP 的编程接口。它采用客户/效劳器通信机制,使客户端和效劳器端通过 Socket 接口在网络上实现连接和数据交换。它提供了一系列系统调用,使用户可以方便地实现 TCP 和 UDP 等多种网络协议地通信。它使用户可以在网络协议上工作而不必对该网络协议有非常深入的了解。这样编写的程序可被迅速移植到任何支持 Socket 的网络系统中去。本文通过主要利用 Java Socket 类实现双机通信,实现一个简单的效劳器,客户端聊天通信工具。并对 Ja
3、va Socket 的实现进展简单的分析和讲解,通过本文以到达对Socket 的原理有一个较清晰的认识。关键词:关键词:套接字、 SocketServer类、客户机 /效劳器模式序言序言随着计算机网络的快速开展,带动了 Java 语言的开展,Java 越来越成为网络上广为流行的编程语言。Java 是由 SunMicrosystems 公司于 20 世纪末推出的一门面向对象程序设计语言简称 Java 语言 。用 Java 实现的支持 Java applet 的浏览器充分的展示出了 Java 的优势和魅力:跨各种操作系平台、实现动态的 Web 技术、平安的语言权限检查环境、JDK 类库提供的丰富网
4、络类库,易于实现网络编程的开发。Socket 是Java 网络编程的根底,本文就是从套接字的根本原理和使用方法出发,并通过一个简单网络通信例子,讲述在 Java 中使用 Socket 进展网络编程。Socket(InetAddress address, int port, boolean stream);连接到指定 IP 地址,主机端口和数据报方式的流。Socket(InetAddress address, int port, boolean stream);连接到指定 IP 地址,主机端口和数据报方式的流。效劳器端程序任务主要是监听,等待客户机连接,建立一个等待客户端连接的ServerSoc
5、ket 套接字。构造方法如下:public ServerSocket(int port); 连接到的特定端口。public ServerSocket(int port, int backlog); 在声明构造方法时候,必须对创立的 Socket 或 ServerSocket 捕获异常或抛出例外。1 1、系统需求分析系统需求分析1.11.1 需求分析需求分析为了开发出符合要求的网络聊天程序,首先必须知道使用者的需求。对需求的深入理解是开发工作获得成功的前提条件,它对目标工程提出完整、准确、清晰、具体的要求。首先,效劳器需要同时连接很多个用户,并能提供应这些连接用户所需要的任务处理请求,这就要求效
6、劳器能同时处理多个 Socket 连接。效劳器模型一般分为循环效劳器和并发效劳器,循环效劳器一次只能处理一个连接,也就是说同一时间只能由一个用户连接到效劳器进展消息处理,这种情况是不被允许的。因此我们将采用多线程方式的并发效劳器来设计效劳器端,这样将从很大程度上提高效劳器的运行效率。其次,客户端只需要连接到效劳器便可以进展任务的处理工作,因此客户端的主要性能要求为图形界面运行的稳定性和对出错信息的及时反映。当一个窗体出现问题时能够及时的处理,让主程序不受影响。再者,所有的应用程序在运行过程中都会出现出错的情况,这种错误可能来自于程序本身,也有可能是用户操作的失误所造成的。当有错误发生时,我们该
7、有一个很好的机制来保障错误能够及时的被排除。当应用程序出现了错误的时候我们就需要程序能提供应我们出错的信息,这样用户就能够很快的找出具体的出错原因,以便寻找合理的途径去解决它。1.21.2 可行性分析可行性分析可行性分析也称为可行性研究。它是以系统调查为根底,针对开发新系统是否具有必要性和可能性,对新系统的开发从技术、经济、社会的方面进展分析和研究,从而防止投资失误,保证新系统成功开发。可行性研究是为了用最小的代价在尽可能短的时间确定问题能否解决。可行性分析包括以下几个方面的内容:1.2.11.2.1 经济可行性经济可行性从经济可行性角度出发,在开发系统的过程中,必须要考虑如何节约开发本钱,缩
8、短开发周期,用最少的本钱获取最大的回报。为了保证软件产品的质量,系统的开发周期一般都是在一个月左右,并且要保证有充裕的时间进展调研和测试。开发该网络通信系统所需的软件环境Eclipse 开发工具和数据库 MySQL和所需的硬件环境计算机及其相关硬件在机房即可满足,所以在经济方面是可行的。1.2.21.2.2 技术可行性技术可行性该系统使用的开发语言是 JAVA,由于 JAVA 语言具有跨平台性,所以很多编程者都会选择它。经过多年的开展 JAVA 虚拟机已经具有很高的版本,在性能上也有了很大的提高。本系统采用 C/S 架构。因为 C/S 具有一定的灵活性、通用性和易操作性等特点,对用户来说是一个
9、比拟好的选择。目前这种架构在系统架构方面被广泛采用,在系统架构上已经积累了大量的经历,所以本系统在技术上是可行的。1.2.31.2.3 社会可行性社会可行性随着计算机的普及和开展,以及互联网技术的开展,很多公司和企业都能提供局域网信息效劳。而网络聊天系统只需要用户的电脑进入局域网就能访问,不必购置其他任何昂贵设备,大大节约了资金。无论从技术可行性、经济可行性还是社会可行性来说,系统的设计与实现都是可行的。2 2、设计思路设计思路2.12.1 设计思想设计思想套接字对象在网络编程中扮演着重要的角色,可以用套接字技术编写一个聊天室,效劳器为每个客户启动一个线程。在该线程过套接字和客户交流信息,当客
10、户向效劳器发送一条聊天信息“大家好时,效劳器要让所有的这些线程中的输入流写入信息“大家好,这样所有的客户的套接字的输入流就都读取到了这一条信息。如果把信息“你好发送给特定用户,效劳器就让特定线程中的输入流写入信息“你好,则只有特定客户的套接字的输入流可以读取到这条信息。2.22.2 设计目的设计目的1 、理解 Socket 通信原理。2 、掌握使用 ServerSocket 类和 Socket 类进展 TCP Socket 通信的程序设计方法。3 、熟悉 ServerSocket 类和 Socket 类的构造方法及常用方法。4 、熟悉通过 URL 访问网络资源方法。5 、通过 URL 类和 U
11、RLConnection 类获得指定网络资源内容和文件属性,理解流在获得文件内容中的作用。2.32.3 设计设计内容内容采用 TCP Socket 通信实现的 Socket 网络通信。运用 Java 程序编写聊天室,实现简单的聊天功能。它是图形界面,线程,流与文件系统等技术的综合应用。其界面主要采用了 包,java.io 包等。程序实现了聊天室的根本功能,一个实现 Socket 通信的网络应用程序,由一个效劳器端程序和一个客户端程序组成。效劳端程序中包含一个提供 TCP 连接效劳的 ServerSocket 对象和一个参与通信的 Socket 对象,客户端程序中只包含一个参与通信的 Socke
12、t 对象。效劳端的 ServerSocket 对象提供 TCP 连接效劳,连接成功后,实际进展通信的是效劳端的 Socket 对象和客户端的 ServerSocket。3 3、详细设计、详细设计3.13.1 效劳端程序效劳端程序ServerSocket 类用于效劳器端,负责侦听和响应客户机端的连接请求,并承受客户机端发送的数据。ServerSocket 类的主要任务是在效劳器端等候其他机器与它连接,一旦客户机申请建立一个 Socket 连接,ServerSocket 类通过 accept方法返回一个对应的效劳器端 Socket 对象,以便进展直接通信。当两台计算机连接成功后,效劳器端与客户机端
13、就得到一个真正的“Socket-Socket连接。此时,就可利用 Socket 类的getInputStream和 getInputStream方法获取相应端的数据流。建立ServerSocket 对象有以下几种方法:ServerSocket(intportServerSocket(intport,intbacklog)ServerSocket(intport,intbacklog,InetAddressbindAddr)其中,backlog 为最接数,bindAddr 为效劳器所绑定的地址,port 为效劳器侦听的端口号。在效劳器程序中,用了 ServerSocketint port构造方法
14、建立接收客户机的ServerSocket 对象:try ServerSocket server=new ServerSocket(4000);catch(IOE*ception io)在 ServerSocket 对象 Server 建立后,就可用 accept接收客户的 Socket 连接呼叫:Socket client=server.accept;在连接建立后,效劳器端 Socket 对象调用 getInetAddress方法可以获取一个InetAddress 对象,该对象含有客户机端的 IP 地址和域名:area.append(已连接寒塘渡鹤影:+client.getInetAddres
15、s().getHostName()+nn);3.23.2 客户端程序客户端程序Socket 是所有网络协议的根底,也是 JDBC 的根底。Socket 类用于客户机端,在客户机端通过构造一个 Socket 类建立于效劳器的连接。当一个 Socket 连接建立后,用户就可以从该 Socket 对象中获取输入/输出流。在客户端程序中,用以下语句建立了 Socket 对象 client,并建立了与效劳器之间的通信“线路:trySocket client=new Socket(127.0.0.1,4000);area.append(已连接到冷月葬花魂:+client.getInetAddress().
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Socke 通讯 系统 课程设计 报告 文档
链接地址:https://www.desk33.com/p-21489.html