java实现点对点通信

上传人:汽*** 文档编号:498147386 上传时间:2022-09-03 格式:DOC 页数:15 大小:444.50KB
返回 下载 相关 举报
java实现点对点通信_第1页
第1页 / 共15页
java实现点对点通信_第2页
第2页 / 共15页
java实现点对点通信_第3页
第3页 / 共15页
java实现点对点通信_第4页
第4页 / 共15页
java实现点对点通信_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《java实现点对点通信》由会员分享,可在线阅读,更多相关《java实现点对点通信(15页珍藏版)》请在金锄头文库上搜索。

1、用java实现的点对点通信程序的设计通信0903班 学号: 姓名: 指导老师:王国才、杨政宇一设计目标:1. 使用Java高级面向对象编程语言编写一个网络聊天程序。2. 理解Socket的基本概念工作原理,掌握 Socket的建立、监听、连接、发送数据和 接收数据3. 环境要求:Windows95/98/2000/XP,WinSocke4. 能将键盘上输入的数据发送到另一台计算机上;5. 能将接收到的数据显示到屏幕窗口内;6. 类似于一般的主流网络即时聊天程序为了简化程序和系统结构,将“客户端一一服务器一一客户端”的数据传输方式改为“客户端一一服务器”的模式。7. 程序应该具有图形界面,要具备

2、聊天程序的基本雏形。二设计原理与方法1. TCP/IP协议的介绍TCP/IP (传输控制协议/网际协议)是互联网中的基本通信语言或协议。在私网中,它也被 用作通信协议。当你直接网络连接时,你的计算机应提供一个TCP/IP程序的副本,此时接收你所发送的信息的计算机也应有一个TCP/IP程序的副本。TCP/IP是一个两层的程序。高层为传输控制协议,它负责聚集信息或把文件拆分 成更小的包。这些包通过网络传送到接收端的TCP层,接收端的TCP层把包还原为原始文件。低层是网际协议,它处理每个包的地址部分,使这些包正确的到达目的地。网络上的 网关计算机根据信息的地址来进行路由选择。即使来自同一文件的分包路

3、由也有可能不 同,但最后会在目的地汇合。TCP/IP使用客户端/服务器模式进行通信。TCP/IP通信是点对点的,意思是通信是网络中的一台主机与另一台主机之间的。TCP/IP与上层应用程序之间可以说是“没有国籍的”,因为每个客户请求都被看做是与上一个请求无关的。正是它 们之间的“无国籍的”释放了网络路径,才是每个人都可以连续不断的使用网络。许多用户熟悉使用 TCP/IP协议的高层应用协议。包括 万维网的超文本传输协议(HTTP),文件传 输协议(FTP),远程网络访问协议(Telnet )和简单邮件传输协议(SMTP。这些协议通常和 TCP/IP协议打包在一起。使用模拟电话调制解调器连接网络的个

4、人电脑通常是使用串行线路接口协议(SLIP)和点对点协议(P2P)。这些协议压缩IP包后通过拨号电话线发送到 对方的调制解调器中。与TCP/IP协议相关的协议还包括用户数据报协议( UDP,它代替TCP/IP协议来达到特殊的目的。其他协议是网络主机用来交换路由信息的,包括In ternet控制信息协议(ICMP),内部网关协议(IGP),外部网关协议(EGP,边界网关协议(BGP。2. socket协议介绍(1).什么是 socketSocket,简称套接字,用于实现网络上客户和服务器之间的连接。也就是说网络上两个或两 个以上双工方式通信的进程之间总有一个连接,这个连接的端点成为套接字,套接字

5、是在 比较低的层次上通信的。具体的说:一个服务器应用程序一般侦听一个特定的端口等待客户端的连接请求,当 一个连接请求到达时,客户端和服武器端建立一个通信连接,在连接过程中,客户端被分 配一个本地端口与一个socket建立连接,客户端通过写socket来通知服务器,以读socket中的信息,类似的服务器也获得一个本地端口,它需要一个新的端口号来侦听原始 端口上的其他连接请求。服务器也通过它的本地端口连接一个socket,通过读写和客户端通信。.Socket 程序的工作过程:1、建立Socket连接:在通信开始之前由通信双方确认身份,建立一条专用的虚拟连接通 道。2、数据通信:利用虚拟连接通道传送

6、数据信息进行通道。3、关闭:通信结束时,再将所建的虚拟连接拆除。 具体如下:服务器三次握手:第一次握手:原主机发送一个带有本次连接的序号的请求的一个数据帧第二次握手:目的主机收到请求后,如果冋意连接,则发回一个带有一个本次连接序号和源端机连接序列号的确认。第三此握手:源端机收到含有两次初始序列号的应答后,在向目的主机发送一个带有两次 连接的序列号的确认。具体过程如下:第砸手,土郴A冋ACK-1,SYN-1 sro-莘二友握手,主机B收创主机A 的请求向主机A亘废一个确认“ 同呵冋王机A发运一伍接请求*第三安提三,主玉机B发医的皴抿旦在向 王机B发送一亍确认连联.(3).如何开发一个Server

7、-Clie nt模型的程序开发原理:?服务器端,使用ServerSocket监听指定的端口,端口可以随意指定(由于 1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使 用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话 后,关闭连接。? 客户端,使用 Socket对网络上某一个服务器的某一个端口发出连接请求,一旦 连接成功,打开会话;会话完成后,关闭Socket o客户端不需要指定打开的端口,通常临时的、动态的分配一个1024以上的端口。Socket接口是TCP/IP网络的API, Socket接口定义了许多函数或例程,程序员可以用它 们来开

8、发 TCP/IP网络上的应用程序。要学In ternet上的TCP/IP网络编程,必须理解Socket接口。 Socket接口设计者最先是将接口放在Unix操作系统里面的。如果了解Unix系统的输入和输出的话,就很容易了解Socket 了。网络的Socket数据传输是一种特殊的I/O , Socket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用 Socket(),该函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。3. Java编程语言介绍Java,是由Sun Microsystems 公司于1995年5月推出的Java程序

9、设计语言和 Java 平台的总称。用 Java实现的HotJava浏览器(支持 Java applet )显示了 Java的魅力: 跨平台、动态的 Web In ternet 计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet 。(1)java 平台构架Java 平台由 Java 虚拟机(Java Virtual Machine)和 Java 应用编程接口( ApplicationProgrammi ng In terface、简称 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,EnterpriseEdition , java 平台企业版),JavaME(Java 2Platform Micro Ed

11、ition , 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。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端Java应

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

13、a ME规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能。4、设计方法总的设计思想是利用java里的套接字 Socket和ServerSocket (客户/服务器)来建立进程之间的通信,Socket和ServerSocket类库位于 包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个 Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等 的,并没有差别,不因为在服务器端或在客户端而产生不同级别。不管是Socket还是ServerSocket它们的工作都是通过Socke

14、tImpl类及其子类完成的。Accept方法用于产生”阻塞”,直到接受到一个连接,并且返回一个客户端的Socket对象实例。”阻塞是一个术语,它使程序运行暂时”停留在这个地方,直到一个会话产生,然后程序继续;通常”阻塞是由循环产生的。getI nputStream 方法获得网络连接输入,同时返回一个In putStream对象实例。getOutputStream 方法连接的另一端将得到输入,同时返回一个 Outputstream对 象实例。注意:其中 getInputStream 和 getOutputStream 方法均会产生一个 lOException,它 必须被捕获,因为它们返回的流对象

15、,通常都会被另一个流对象使用。三设计功能1、将键盘上输入的数据发送到另一台计算机上2、能将接收到的数据显示到屏幕窗口内3、能和不同的电脑建立连接4、有简单美观的界面四程序流程图五程序清单服务器端* (#)liaotia n.java* author* version 1.00 2012/9/12*服务器端*/package keshe.xiaoxue;import javax.swi ng.*; /窗口工具包import java. net.*; /网络应用包输入输出软件包/impleme nts Acion Liste neclass MyServer exte nds JFrame impleme nts Action Liste nerJTextArea jta;JTextField jtf;JLabel pic1;JLabel pic2;JB

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

当前位置:首页 > 资格认证/考试 > 自考

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