湖南工业大学计算机网络课程设计

上传人:第*** 文档编号:33882547 上传时间:2018-02-18 格式:DOC 页数:13 大小:188.55KB
返回 下载 相关 举报
湖南工业大学计算机网络课程设计_第1页
第1页 / 共13页
湖南工业大学计算机网络课程设计_第2页
第2页 / 共13页
湖南工业大学计算机网络课程设计_第3页
第3页 / 共13页
湖南工业大学计算机网络课程设计_第4页
第4页 / 共13页
湖南工业大学计算机网络课程设计_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《湖南工业大学计算机网络课程设计》由会员分享,可在线阅读,更多相关《湖南工业大学计算机网络课程设计(13页珍藏版)》请在金锄头文库上搜索。

1、1计算机网络课 程 设 计 说 明 书(题目)基于 Java 的简易网络聊天程序起止日期: .学 生 姓 名班 级学 号成 绩指 导 教 师 (签 字 )计算机与通信学院2012 年 7 月 1 日2课题名称 基于 Java 的简易网络聊天程序 人 数组 长 同组人员课题的主要内容和要求1 使用 Java 高级面向对象编程语言编写一个网络聊天程序2 聊天程序应该能够通过英特网进行简单的字符发送与接收3 类似于一般的主流网络即时聊天程序,以腾讯 QQ 为例,为了简化程序和系统结构,将腾讯 QQ 中的 “客户端服务器客户端”的数据传输方式改为“客户端服务器”的模式。4 程序应该具有图形界面,不要求

2、长的和腾讯 QQ 长的一模一样,但必须具备聊天程序的基本雏形。具体任务陈志坚:编写程序肖平:收集课题相关资料郭晴:写课题报告时间安排与完成情况7.5了解课题,着重查找与课题相关的资料。7.7-7.8仔细阅读相关理论知识,并根据具体情况,确定设计的方案。7-9-7-10编写 Java 程序。7.11 调试程序。7.12 课程设计答辩,同时完成课程设计报告3一、课题介绍互联网的普及给人们的通讯方式带来了一场革命,而在这场革命又反过来促进互联网的普及以及进步,即时聊天是因特网的重要运用之一,目前主流即时聊天软件有腾讯 QQ,微软 MSN,网易泡泡,新浪 UC,阿里旺旺等等,而其中风靡中国乃至亚洲的

3、QQ 软件以其合理的界面,丰富的功能,以及超强的性能成为无数企业模仿的对象。目前的网路主流聊天程序虽然用途各有侧重,但其实基本原理和架构是差不多的。我们这次做的就是即使网络聊天程序中最基本最简单但也最核心的部分即写一个程序能够实现简单的字符发送和接受,其他主流网络聊天程序无论在怎么变,也无法摆脱这个雏形。二、理论知识1. TCP/IP协议 TCP/IP(传输控制协议/网际协议)是互联网中的基本通信语言或协议。在私网中,它也被用作通信协议。当你直接网络连接时,你的计算机应提供一个 TCP/IP 程序的副本,此时接收你所发送的信息的计算机也应有一个 TCP/IP 程序的副本。 TCP/IP是一个两

4、层的程序。高层为传输控制协议,它负责聚集信息或把文件拆分成更小的包。这些包通过网络传送到接收端的TCP层,接收端的TCP层把包还原为原始文件。低层是网际协议,它处理每个包的地址部分,使这些包正确的到达目的地。网络上的网关计算机根据信息的地址来进行路由选择。即使来自同一文件的分包路由也有可能不同,但最后会在目的地汇合。 TCP/IP使用客户端/ 服务器模式进行通信。TCP/IP通信是点对点的,意思是通信是网络中的一台主机与另一台主机之间的。TCP/IP与上层应用程序之间可以说是“没有国籍的”,因为每个客户请求都被看做是与上一个请求无关的。正是它们之间的“无国籍的” 释放了网络路径,才是每个人都可

5、以连续不断的使用网络。 许多用户熟悉使用TCP/IP协议的高层应用协议。包括万维网的超文本传输协议(HTTP) ,文件传输协议(FTP) ,远程网络访问协议(Telnet)和简单邮件传输协议(SMTP) 。这些协议通常和TCP/IP 协议打包在一起。 使用模拟电话调制解调器连接网络的个人电脑通常是使用串行线路接口协议(SLIP)和点对点协议(P2P) 。这些协议压缩 IP包后通过拨号电话线发送到对方的调制解调器中。 与TCP/IP协议相关的协议还包括用户数据报协议(UDP) ,它代替TCP/IP协议来达到特殊的目的。其他协议是网络主机用来交换路由信息的,包括Internet控制信息协议(ICM

6、P) ,内部网关协议(IGP) ,外部网关协议(EGP) ,边界网关协议(BGP) 。2socket协议(1).什 么 是 socket所谓 socket 通常也称作 套接字,用于描述 IP 地址和端口,是一个通信链的句柄。应用程序通常通过套接字 向网络发出请求或者应答网络请求。 以 J2SDK-1.3 为例,Socket 和 ServerSocket 类库位于 包中。ServerSocket 用于服务器端,Socket 是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个 Socket 实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在

7、服务器端或在客户端而产生不同级别。4(2).如 何 开 发 一 个 Server-Client 模 型 的 程 序开发原理: 服务器端,使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口) ,等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。 客户端,使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个1024以上的端口。 Socket接口是TCP/I

8、P 网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。 Socket接口设计者最先是将接口放在Unix操作系统里面的。如果了解Unix系统的输入和输出的话,就很容易了解Socket了。网络的Socket数据传输是一种特殊的I/O,Socket 也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的 Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。3 JavaJava,是由Sun Micro

9、systems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。(1)java 平 台 构 架Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface、简称API )构成。Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可

10、分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java 平台之后,Java 应用程序就可运行。现在 Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java应用编程接口已经从 1.1x版发展到1.2版。目前常用的 Java平台基于Java1.5,最近版本为Java1.7。 Java分为三个体系JavaSE(Java2 Platform Standard Edition,java 平台标准版),JavaEE(Java 2 Platform,Enterprise Edition,java平台企业版),JavaME(Java 2 Platfo

11、rm Micro Edition,java平台微型版)。 * Java SE(Java Platform, Standard Edition) 。Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 Java Platform,Enterprise Edition(Java EE)提供基础。 * Java EE(Java Platform,Enterprise Edition) 。这个版本以前称为 J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端

12、 Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0 应用程序。 * Java ME( Java Platform,Micro Edition) 。这个版本以前称为 J2ME。Java ME 5为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME 包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线

13、应用程序的丰富支持。基于 Java ME 规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能。(2)Java 与 C/C+的 差 异 熟悉 C 语言和 C+语言的读者一定想搞清楚这个问题,实际上,Java 确实是从 C 语言和 C+语言继承了许多成份,甚至可以将 Java 看成是类 C 语言发展和衍生的产物.比如 Java 语言的变量声明,操作符形式 ,参数传递,流程控制等方面和 C 语言,C+语言完全相同.尽管如此,Java 和 C 语言,C+语言又有许多差别,主要表现在如下几个方面: (1) Java 中对内存的分配是动态的,它采用面向对象的机制,采用运算符 n

14、ew 为每个对象分配内存空间,而且,实际内存还会随程序运行情况而改变.程序运行中,每个, Java 系统自动对内存进行扫描,对长期不用的空间作为” 垃圾”进行收集,使得系统资源得到更充分地利用.按照这种机制,程序员不必关注内存管理问题,这使 Java 程序的编写变得简单明了,并且避免了了由于内存管理方面的差错而导致系统出问题.而 C 语言通过 malloc()和 free()这两个库函数来分别实现分配内在和释放内存空间的,C+语言中则通过运算符 new 和 delete 来分配和释放内存.在 C 和 C+这仲机制中,程序员必须非常仔细地处理内存的使用问题.一方面,如果对己释放的内存再作释放或者

15、对未曾分配的内存作释放,都会造成死机;而另一方面,如果对长期不用的或不再使用的内存不释放,则会浪费系统资源,甚至因此造成资源枯竭. (2) Java 不在所有类之外定义全局变量,而是在某个类中定义一种公用静态的变量来完成全局变量的功能. (3) Java 不用 goto 语句 ,而是用 try-catch-finally 异常处理语句来代替 goto 语句处理出错的功能. (4) Java 不支持头文件,而 C 和 C+语言中都用头文件来定义类的原型,全局变量,库函数等,这种采用头文件的结构使得系统的运行维护相当繁杂. (5) Java 不支持宏定义,而是使用关键字 final 来定义常量 ,

16、在 C+中则采用宏定义来实现常量定义,这不利于程序的可读性. (6) Java 对每种数据类型都分配固定长度.比如,在 Java 中,int 类型总是 32 位的,而在 C 和 C+中,对于不同的平台,同一个数据类型分配不同的字节数,同样是 int 类型,在 PC 机中为二字节即 16 位,而在 VAX-11 中,则为 32 位.这使得 C 语言造成不可移植性,而 Java 则具有跨平台性 (平台无关性). (7) 类型转换不同 .在 C 和 C+中,可通过指针进行任意的类型转换,常常带来不安全性,而在 Java 中,运行时系统对对象的处理要进行类型相容性检查,以防止不安全的转换. (8) 结构和联合的处理.在 C 和 C+中,结构和联合的所有成员均为公有,这就带来了安全性问题,而在 Java 中根本就不包含结构和联合,所有的内容都封装在类里面. (9) Java不再使用指针.指针是C和

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

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