网站大量收购独家精品文档,联系QQ:2885784924

Java程序设计——网络.ppt

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java程序设计——网络.ppt

互联网协议简介 下面是一些互联网上比较常用的协议: TCP/IP简介 TCP/IP协议: IP地址:用四个字节标志一台计算机,如8。 Port(端口):用于区分一台计算机上的不同通信用途(程序)。 通信中包括两方:发送方和接收方,每一端都有IP和Port。 通信分为两种方式: 有连结(TCP):相当于在两台计算机间建立一个双向数据流管道,数据有顺序。类似于打电话。 无连结(UDP / Datagram,数据报):将数据组织为一个个的包,以包为单位发送,包之间不保证顺序。类似于发邮件。 TCP和UDP(Datagram)的区别 TCP是一种有连结的数据传输协议 传输数据前先建立可靠的连结; 数据传输是可靠的,如果传输不到接收方,发送方能够检测到; 数据传输是有序的,先发送的数据肯定先到达接收方; 因为要建立连结并通过一套协议机制保证数据传输的有效性和可靠性,所以耗费资源比较多。 类似于打电话。 UDP是一种无连结的数据传输协议 不需要建立连结; 数据传输是不可靠的,数据包一旦发出,就和发送方没有关系了,能否到达接收方不可知; 数据传输顺序是不一定的,先发送的数据包可能后到达接收方; 耗费资源比较少。 类似于发邮件或短信。 Socket简介 Socket是使用TCP/IP协议进行网络程序设计的API接口。 Socket将通信双方抽象为服务器端和客户端,分别用ServerSocket和Socket类来描述。 实现TCP服务器端 实现TCP服务器端的步骤如下: 创建一个ServerSocket对象; 等待客户端连结; 有连结后,建立输入、输出流; 通过两个流进行数据传输。 实现连续服务 要实现对一个连结的连续服务,服务器端必须循环处理输入流的内容。 要实现对多次连结的服务,服务器端必须循环处理所有建立的连结。 同时为多个连结提供服务 用多线程技术可以实现服务器端同时为多个连结服务。 设置等待连结超时 Server3中的问题: 当客户端输入“quit”时,服务器端并不立即退出,而是要在下一次连结后才退出。 原因在于accept()函数等待连结的过程中,不会检查退出标志。 解决方法是,设定等待时间,若超时accept()会抛出异常。 实现TCP客户端 实现TCP客户端的步骤如下: 根据服务器ip和port创建一个Socket对象; 连结后,建立输入、输出流; 通过两个流进行数据传输。 客户端Client1的说明 问题1:客户端和服务器端通信必须采用一问一答的方式,不够灵活。如果服务器主动给客户端发送一条信息,则客户端无法及时收到;或者客户端需要读入而服务器没有发送,则客户端死等。 原因:发送数据和接收数据都在一个线程中进行。 解决:如果需要,可以将发送数据和接收数据分为两个线程。 问题2:没有处理各种网络通信的异常。 异常1:服务器端程序整个退出,客户端再发送信息时抛出.SocketException ; 异常2:服务器端服务线程退出,客户端再发送信息时抛出.SocketException ; 异常3:客户端退出,服务器端立即抛出.SocketException; 异常4:客户端在连结服务器时如果服务器未启动,则抛出.ConnectionException。 问题3:客户端无法检测到服务器端的中断。 原因:用PrintWriter来操作网络输出流,检测不到连接中断的异常。 解决:改用OutputStream等能够检测到输出异常的类来操作网络输出。 简易聊天室程序 聊天室的功能特点: 服务器从一个客户端接收的信息,要发送到所有客户端。 聊天室程序的结构如下: 服务器端:监听线程监视连结并创建Socket和接收线程,接收线程将接收到的信息发往所有客户端。 客户端:接收线程接收数据,主线程接收键盘输入并发往服务器端。 聊天服务器 聊天服务器: 监听线程监视连结并创建Socket和接收线程。 接收线程将接收到的信息发往所有客户端。 聊天客户端 聊天客户端: 接收线程接收数据。 主线程接收键盘输入并发往服务器端。 实现Datagram接收方 实现Datagram接收方的步骤如下: 创建一个DatagramSocket对象; 创建一个空的DatagramPacket,等待数据包到达; 有数据包到达后,可以从数据包得到发送方的ip和port,以及包中的数据,从而进行处理 实现Datagram发送方 实现Datagram发送方的步骤如下: 创建一个DatagramSocket对象; 创建一个DatagramPacket,指定接收方ip,port和数据; 发送。 TCP和UDP(Datagram)在处理上的区别 TCP协议可以在一台计算机的一个端口上可以建立多个连结,而且需要为每个连结建立一个线程。 UDP协议没有连结的概念,一台计算机的一个端口上只需建立

文档评论(0)

rewfdgd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档