第16章-实现网络通信_第1页
第16章-实现网络通信_第2页
第16章-实现网络通信_第3页
第16章-实现网络通信_第4页
第16章-实现网络通信_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第16章 实现网络通信主讲:胡伏湘复习提问 1、什么线程?2、采用多线程处理有什么优势?3、通过哪些方法可以创建多线程?4、如何同步多线程?预习与提问 1、举例说明URL的组成? 2、什么是TCP/UDP?两者有什么不同?3、网络端口是什么?指出下面端口对应的应用程序。 7 21 23 25 80本章提要 主要知识点:网络通信基本理论与方法;URL编程;Socket套接字编程;Datagram数据报编程 学习目标:理解网络协议与IP地址的概念,掌握URL类的用法、Socket和Datagram通信机制,能够运用URL、Socket、Datagram实现网络软件的通信功能。16.1 认识网络通信

2、16.1.1 网络编程基本理论 在TCP/IP协议的层次结构中,传输层提供在源结点和目标结点的两个实体之间可靠的端到端数据传输,TCP/IP模型提供了了两种传输协议,即传输控制协议TCP和用户数据报协议UDP。TCP是面向连接的协议,在传递数据之前必须和目标结点建立连接,然后再传送数据,传送数据结束后,关闭连接。而UDP是一种无连接协议,无须事先建立连接即可直接传送带有目标结点信息的数据报 16.1 认识网络通信16.1.1 网络编程基本理论 端口(Port)和IP地址为网络通信的应用程序提供了一种确定的地址标识,IP地址表示了发送端口的目的计算机,而端口表明了将数据包发送给目的计算机上的哪一

3、个应用程序 16.1 认识网络通信16.1.2 网络编程的基本概念 1、IP地址用于标识网络上的计算机或者其它网络设备,由4个字节组成 2、TCP 与UDPTCP提供两台计算机之间无差错的可靠数据传输,是面向连接的通信协议。UDP是无连接通信协议,不保证可靠的数据传输 ,收到数据方无须确认 16.1 认识网络通信16.1.2 网络编程的基本概念 3、Socket套接字Socket套接字是网络驱动层提供给应用程序编程的接口和管理方法,处理数据接收与输出 4、数据报datagraph是一种面向非连接的、以数据报方式工作的通信,适用于网络层不可靠的数据传输与访问 5、URL网络统一资源定位器,确定数

4、据在网络中的位置 16.1 认识网络通信16.1.3 网络编程的基本方法 Java语言专门为网络通信提供了系统软件包,利用它提供的有关类及方法可以快速开发基于网络的应用程序 16.2 URL编程 16.2.1 URL的构成 URL用来标识Internet的资源,包括取得获得资源采用的地址,通过URL可以访问Internet的文件和其它资源。URL的一般格式是:protocol:/hostName:port/resourcePath 即:协议名:/主机名:端口号/资源路径 16.2 URL编程 16.2.2 URL类 URL的构造方法很多,主要包括:public URL(String url)如

5、:URL url1=new URL();public URL(URL baseURL,String relativeURL) baseURL绝对地址,relativeURL相对位置 16.2 URL编程 16.2.2 URL类 2、URL类的主要方法URL类提供了很多方法,主要用于设置或者获取有关参数,如:getContent() /获取URL的内容getDefaultPort() /获取URL的默认端口16.2 URL编程 例16-1:利用URL获取WWW服务器文件内容()16.2 URL编程 16.2.3 URLConnection类 1、URL连接的创建URLConnection类的构造

6、方法只有一个,即:URLConnection(URLurl) /构建一个与URL的连接 16.2 URL编程 16.2.3 URLConnection类 URLConnection类的方法很多,可以返回或者设置资源长度、最新更新时间、编码、标题、缓冲区、许可证等全方位的信息。用户创建了URL类对象后,通过其openConnection方法获得URLConnection类的对象 16.2 URL编程 16.2.3 URLConnection类 2、读写操作建立好了URL连接,就可针对这个连接的输入流(InputStream)进行读操作,也可以可以针对这个连接的输出流(OutStream)进行写操

7、作,这时需要先调用方法setDoOutput将输入(Output)属性设置为真(true),指定该连接后写入内容 16.2 URL编程 16.2.3 URLConnection类 3、使用URLConnection类进行通信的基本步骤创建URLConnection类的对象第一步:建立URL对象,第二步调用这个对象的openConnection方法,返回一个对应其URL地址的URLConnection对象。建立输入输出数据流利用URLConnection类的方法getInputStream和getOutputStream获取输入输出数据流。从远程计算机节点上读取信息或者写入信息 16.2 URL

8、编程 16.2.3 URLConnection类例16-2:通过类URLConnection,读取网站首页内容。16.3 实现基于Socket的网络通信16.3.1 Socket通信机制 1、Socket通信的步骤 建立Socket连接:通信开始之前由双方确认,建立一条专用虚拟连接通道数据通信:利用虚拟通道传送数据拆除连接:通信结束后,将建立的虚拟连接拆除16.3 实现基于Socket的网络通信16.3.1 Socket通信机制 2、Socket类和ServerSocket 包中提供了两个类:Socket类和ServerSocket类,分别用于客户端和服务器端的Socket通信,网络通信的方法

9、都封装在这两个类中 16.3 实现基于Socket的网络通信16.3.1 Socket通信机制 ServerSocket(int port) /在指定的端口上创建服务器Socket对象ServerSocket(int port,int count) /在指定的端口上创建服务器Socket对象,并指定服务器能够支持的最大连接数Socket(InetAddress IP,int port) /使用指定IP地址和端口建立Socket对象Socket(String host,int port) /使用指定主机和端口建立Socket对象16.3 实现基于Socket的网络通信16.3.1 Socket通

10、信机制 Socket(InetAddress IP,int port,boolean stream) /使用指定IP地址和端口建立Socket对象,布尔值stream表示是否采用流式通信方式。Socket(String host,int port,boolean stream) /使用指定主机和端口建立Socket对象,布尔值stream表示是否采用流式通信方式 16.3 实现基于Socket的网络通信例11-3:利用Socket进行服务器与客户机的通信,再进一步改造为聊天室程序。16.4 实现基于Datagram的网络通信16.4.1 数据报Datagram通信原理包中提供了两个类Datag

11、ramSocket和DatagramPacket用来支持数据报通信,DatagramSocket用于在程序之间建立传送数据报的通信连接, DatagramPacket则用来表示一个数据报。DatagramSocket的构造方法有:DatagramSocket() /生成一个DatagramSocket对象DatagramSocket(int prot)DatagramSocket(int port, InetAddress laddr)16.4 实现基于Datagram的网络通信16.4.2 运用Datagram进行通信服务器端接收/发送报文包括10步:1定义数据成员DatagramSocke

12、t socket;DatagramPacket packet;InetAddress address; /用来存放接收方的地址int port; /用来存放接收方的端口号2创建数据报Socket对象try socket=new DatagramSocket(1111);catch(.SocketException e) socket 绑定到一个本地的可用端口,等待接收客户的请求16.4 实现基于Datagram的网络通信16.4.2 运用Datagram进行通信3分配并填写数据缓冲区,存放从客户端接收的请求信息byte Buf=new byte256; 4创建一个DatagramPacket用

13、来从socket接收数据,包括两个参数packet=new DatagramPacket(buf, 256);5服务器阻塞接收,在客户的请求报道来之前一直等待socket.receive(packet);6从到来的包中得到地址和端口号InetAddress address=packet.getAddress();int port=packet.getPort();7将要发送的数据送入发送缓冲区,数据或来自文件或键盘输入8建立报文包,用来从socket上发送信息packet=new DatagramPacket(buf,buf.length, address,port);9发送数据包socket.send(packet); 10关闭socketsocket.close();16.4 实现基于Datagram的网络通信例16-5:运用Datagram方式,将服务器端的一个文件testfile.txt发到客户端。执行过程是:服务器端首先生成Dat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论