版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、13.1网络编程基础 13.2网络API的使用 13.3基于TCP的Socket网络编程 第第13章章Java网络编程网络编程 本章教学内容:本章教学内容: 本章教学内容本章教学内容( (续续) ) 13.3.1Java网络编程概述 13.3.2基于TCP的Socket网络编程原理 13.3.3基于TCP的Socket网络编程实现 本章教学目标:本章教学目标: 理解计算机网络编程的概念 理解TCP/IP协议规范 理解域名与DNS的概念 掌握基于URL的网络编程 掌握基于TCP的C/S网络编程 掌握基于Socket的低层次Java网络编程 掌握基于Socket的多线程通信 13.1网络编程基础
2、.1网络类型网络类型 按照网络的地理位置,可以将网络分为: 局域网(LAN):一般限定在较小的区域内,小于10km的 范围,通常采用有线的方式连接起来。 城域网(MAN):规模局限在一座城市的范围内,10 100km的区域。 广域网(WAN):网络跨越国界、洲界,甚至全球范围 按照服务方式,可以将网络分为: 客户机/服务器网络(Client/Server):服务器是指专门 提供服务的高性能计算机或专用设备,客户机是用户计 算机。 对等网(Peer-to-Peer):对等网不要求文件服务器,每 台客户机都可以与其他每台客户机对话,共享彼此的信 息资源和硬件资源,组网的计算机一
3、般类型相同。 13.1.2 TCP/IP13.1.2 TCP/IP协议协议 1IP IP是互联网络协议。IP主要负责网络主机的定位,实现 数据传输的路由选择。实际应用中使用域名地址,域名 和IP之间的转换通过域名解析完成。 IP协议提供了能适应各种各样网络硬件的灵活性,对底 层网络硬件几乎没有任何要求。 IP协议是一个无连接、不可靠的协议。在传输数据之前 ,它不交换控制信息,数据包只是传送到目的主机,并 且假设能被正确的处理。由于IP协议并不重新传输已丢 失的数据包或监测受损害的数据,所以IP协议是不可靠 的。这种功能可以通过TCP来实现。 2TCP TCP协议是一种端对端协议。TCP协议为两
4、台计算机之 间的建立一个连接、发送和接收数据以及终止连接。 TCP协议利用重发技术和拥塞控制机制,向应用程序提 供可靠的通信连接,使它能够自动适应网上的各种变 化。即使在Internet暂时出现堵塞的情况下,TCP也能 够保证通信的可靠;TCP协议具有自动调整“超时值” 的功能,能很好地适应Internet上各种各样的变化, 确保传输数值的正确。 13.1.313.1.3网络地址网络地址 网络地址通常有两种标识方法,一种是由4个整数组成 的一个32位的IP地址表示网络地址,如: 4; 另一种是通过域名表示网络地址,如: 是枣庄学院网站的域名。 1.IP地址 IP地址是一
5、个32位的二进制地址,分为4组,每组8位, 由小数点分开,用四个字节来表示,每个字节的数值范 围是0255。 IP地址按分为三类 : A类地址的表示范围为:55,默 认网络掩码为:。 B类地址的表示范围为:55, 默认网络掩码为:。 C类地址的表示范围为:55, 默认网络掩码为:。 2域名 域名(Domain Name)是由一串用“.”分隔的字符串名 成,用于标识计算机的电子方位。域名不仅便于记忆, 而
6、且在IP地址发生变化时,域名仍可保持不变。 常用的域名分为: 国际域名:也叫国际顶级域名 国内域名:也叫国内顶级域名。 二级域名:指顶级域名之下的域名。 三级域名:一般应用于中小企业及个人注册使用。 3 DNS DNS(Domain Name Server)是域名解析的服务器。通 过DNS服务可以将用户输入的域名解析为与之相关IP地 址,从而唯一确定该域名所绑定的域层次结构中的计 算机和网络服务。 13.2网络API的使用 常用的网络类有: URL类:统一资源定位器,封装了对网络资源的访问 URLConnection类:URL指定的数据源的动态连接。 InetAddress类:封装计算机的IP
7、地址和域名。 13.2.1 URL13.2.1 URL类类 URL是统一资源定位器的简称,表示Internet上某一资 源的地址。通过URL可以访问Internet上的各种网络资 源,比如最常见的WWW站点。浏览器通过解析给定的 URL 可以在网络上查找相应的文件或其他资源。 一个完整的URL由协议名、主机名(主机IP)、端口号 和文件路径四部分组成。 1.URL常用方法 实例实例13-113-1根据指定的路径构造URL对象,并获取当前 URL对象的相关属性。 方法名方法名功能说明功能说明 public URL(String spec)public URL(String spec)构造方法,根
8、据指定的构造方法,根据指定的specspec来创建一个来创建一个URLURL对象对象 public URL(String protocol,String public URL(String protocol,String host,int port,String file)host,int port,String file) 构造方法,根据指定的协议、主机名、端口号、文件路径及构造方法,根据指定的协议、主机名、端口号、文件路径及 文件名创建一个文件名创建一个URLURL对象对象 public URL(String protocol, String public URL(String proto
9、col, String host, String file)host, String file) 构造方法,根据指定的协议、主机名、路径及文件名创建构造方法,根据指定的协议、主机名、路径及文件名创建 URLURL对象对象 public String getProtocol()public String getProtocol()获取该获取该URLURL的协议名的协议名 public String getHost()public String getHost()获取该获取该URLURL的主机名的主机名 public int getPort()public int getPort()获取该获取该U
10、RLURL的端口号,如果没有设置端口,返回的端口号,如果没有设置端口,返回-1-1 public String getFile()public String getFile()获取该获取该URLURL的文件名的文件名 public String getRef()public String getRef()获取该获取该URLURL在文件中的相对位置在文件中的相对位置 public String getQuery()public String getQuery()获取该获取该URLURL的查询信息的查询信息 public String getPath()public String getPath(
11、)获取该获取该URLURL的路径的路径 public String getRef()public String getRef()获得该获得该URLURL的锚的锚 2.获取网络资源 读取网络资源数据的步骤为: (1)创建URL类的实例对象,使其指向给定的网络资源。 (2)通过URL类的openStream()方法建立URL连接,返回输 入流对象的引用。 (3)通过BufferedReader或BufferedInputStream封装输 入流。 (4)读取数据并进行数据处理。 (5)关闭数据流。 实例实例13-2 13-2 通过通过URL对象获取网络资源。 3 3显示显示URLURL资源中的资源
12、中的HTMLHTML文件文件 可以将可以将URLURL资源内容读取到客户端,但是对于资源内容读取到客户端,但是对于HTMLHTML文件,文件, 用户可能想看到网页的运行效果而不是网页的代码。用户可能想看到网页的运行效果而不是网页的代码。 javax.swingjavax.swing包中的包中的JeditorPaneJeditorPane容器可以解释、执行容器可以解释、执行HTMLHTML 文件,也就是说,如果把文件,也就是说,如果把HTMLHTML文件读入到文件读入到JeditorPaneJeditorPane容容 器,该器,该HTMLHTML文件就会被解释、执行,显示在文件就会被解释、执行,
13、显示在JeditorPaneJeditorPane 容器中,这样用户就能看到网页的运行效果。容器中,这样用户就能看到网页的运行效果。 实例实例13-3 13-3 通过通过JeditorPaneJeditorPane对象显示网络资源中的网页。对象显示网络资源中的网页。 13.2.2 InetAddress13.2.2 InetAddress类类 在Java中,使用包中的InetAddress类来封装 IP地址和该地址的域名。InetAddress类内部隐藏了地 址数字,它不需要用户了解如何实现地址的细节。 InetAddress类没有构造方法,不能直接创建其对象, 但可以通过该类的静态方法创建一
14、个InetAddress对象 或InetAddress数组。 实例实例13-4 13-4 通过InetAddress类获取本机的地址信息和 指定域名的地址信息演示。 13.3 基于TCP的Socket网络编程 在Java编程中,我们可以编写出控制台程序、桌面程 序,也可以使用Java提供的网络编程类库编写出类似 于QQ聊天系统、FTP服务器和Web服务器等的网络通信 程序。 13.3.1 Java13.3.1 Java网络编程概述网络编程概述 所谓网络编程就是通过使用套接字来实现进程间通信的编 程。网络编程从大的方面说就是从信息的发送到接收的过 程,其主要工作就是在发送端把信息通过规定的协议分
15、封 装成包,在接收端按照规定的协议把包进行解析,从而提 取出对应的信息,达到通信的目的。 套接字(Socket)是一种基于网络通信的接口,是一种软 件形式的抽象表述,用于表达两台机器之间在一个连接上 的两个“终端”,即针对一个连接,每台机器上都有一个 套接字,它们之间有一条虚拟的线缆,线缆的每一端都插 入到一个套接字里。套接字为程序员屏蔽了网络的底层细 节,例如媒体类型、信息包的大小、网络地址、信息的重 发等。 .2基于基于TCPTCP的的SocketSocket网络编程原理网络编程原理 TCP套接字用于在主机和Internet之间建立可靠的、双向的 、持续的、点对点的流式
16、连接。一个套接字可以用来建立 Java的输入/输出系统到其他的驻留在本地机或Internet上 的任何机器的程序的连接。 利用基于TCP的 Socket 通信编程接口编写网络程序,其目 的是在 TCP/IP 所组建网络的不同机器之间利用客户/服务 器模式建立通信连接。为建立该连接,开发人员要提供服 务器的IP地址和端口等基本的连接信息。 13.3.313.3.3基于基于TCPTCP的的SocketSocket网络编程实现网络编程实现 为了能够实现基于TCP的Socket 网络编程,Java提供了两 类TCP套接字:一种是服务器套接字(ServerSocket);另 一种是客户端套接字(Sock
17、et)。ServerSocket类设计成 在等待客户建立连接之前不做任何事的“监听器”。 Socket类为建立连向服务器套接字以及启动协议交换而设 计。利用Socket类的方法,就可以实现两台计算机之间的 通信。 1.客户端程序设计 Socket是网络上运行的两个程序间双向通信的一端,它既 可以接受请求,也可以发送请求,利用它可以较为方便地 在网络上传递数据。 Socket类常用方法: 方法名方法名功能说明功能说明 public Socket(String host ,int port)public Socket(String host ,int port)创建一个到主机创建一个到主机host
18、host、端口号为、端口号为portport的套接字,并连接到远程主机的套接字,并连接到远程主机 public Socket (InetAddress host ,int port )public Socket (InetAddress host ,int port )创建一个套接字,使用创建一个套接字,使用hosthost中封装的主机信息、端口号为中封装的主机信息、端口号为portport,并连接到主机,并连接到主机 public InetAddress getInetAddress()public InetAddress getInetAddress()返回连接到远程主机的地址,如果连接失
19、败,则返回以前连接的主机返回连接到远程主机的地址,如果连接失败,则返回以前连接的主机 public int getPort()public int getPort()返回返回SocketSocket连接到远程主机的端口号连接到远程主机的端口号 public int getLocalPort()public int getLocalPort()返回本地连接终端的端口号返回本地连接终端的端口号 public InputStream getInputStream()public InputStream getInputStream()返回一个输入流,利用这个流就可以从套接字读取数据返回一个输入流,利
20、用这个流就可以从套接字读取数据 public OutputStream getOutputStream()public OutputStream getOutputStream()返回一个输出流,可以在应用程序中写数据到套接字的另一端返回一个输出流,可以在应用程序中写数据到套接字的另一端 public synchronized void close()public synchronized void close()关闭当前关闭当前SocketSocket连接连接 客户端编程步骤如下: (1)根据指定服务器地址和进行连接的端口号创建一个 Socket对象,与服务器端建立连接。 (2)调用Sock
21、et类的getInputStream()方法和 getOutputStream()方法获得该套接字所对应的输入流和输 出流。 (3)通过输入流和输出流与服务器进行数据通信。 (4)通信结束后,关闭输入流、输出流以及套接字Socket 。 2. 服务器端程序设计 服务器套接字(ServerSocket)运行在服务器上,并监听 在特定端口的TCP连接。 ServerSocket类的常用方法 方法名方法名功能说明功能说明 public ServerSocket(int public ServerSocket(int port )port ) 构 造 方 法 , 根 据 指 定 端 口 创 建构 造 方 法 , 根 据 指 定 端 口 创 建 ServerSocketServerSocket实例实例 public Socket accept()public Socket accept() 这是一个阻塞方法,它停止执行代码流,这是一个阻塞方法,它停止执行代码流, 并等待下一个客户端并等待下一个客户端 的连接。当客户端请求连接时,的连接。当客户端请求连接时,accept()accept() 方
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026广东省广晟控股集团有限公司总部管理人员岗位选聘4人备考题库及参考答案详解(突破训练)
- 2026云南临沧检测机构招聘食品检测聘用人员1人备考题库及参考答案详解【黄金题型】
- 2026广东省广晟控股集团有限公司总部管理人员岗位选聘4人备考题库及答案详解【名校卷】
- 2026江西萍建工程建设有限公司招聘11人备考题库附答案详解
- 2026广东深圳市宝安区中英公学高薪诚聘特色普通高中各科教师备考题库(能力提升)附答案详解
- 2026平安财险甘孜县支公司农险客户经理招聘备考题库(四川)(考试直接用)附答案详解
- 2026广东深圳市宝安区翻身实验学校(西校区)诚聘初中道法、高中历史教师2人备考题库及参考答案详解(完整版)
- 2026广西桂林市社会保险事业管理中心招聘公益性岗位人员1人备考题库带答案详解(精练)
- 2026浙江杭州上城区城市建设投资集团有限公司下属子公司招聘工作人员2人备考题库含完整答案详解(历年真题)
- 中建安装2026届春季校园招聘备考题库及答案详解1套
- 中学语文课程标准与教材研究 第2版 课件全套 第1-6章 语文课程-语文课程资源
- 《生物信息学课件》课件
- T-CCTAS 34-2022 带肋钢筋轴向冷挤压连接技术规程
- 村文书考试题及答案甘肃
- 十二星座知识及性格课件
- 2025年浙江工贸职业技术学院单招职业倾向性考试题库及答案1套
- 高职应用语文教程(第二版)教案 上篇 文学鉴赏
- 《特种设备重大事故隐患判定准则图解》
- 乡村振兴 高素质农民培养规范 (DB3205T 1138-2024)
- 管道设备钢结构拆除施工方案
- 腮腺炎防治知识培训讲座
评论
0/150
提交评论