版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象程序设计项目教程本章学习目标:●了解Java网络相关的API●掌握Socket类及其方法的使用●掌握ServerSocket类的使用项目15实现网络编程任务1part掌握Java网络APIJava提供InetAddress类来封装IP地址或域名,InetAddress类有两个子类:Inet4Address类和Inet6Address类,分别用于封装4个字节的IP地址和6个字节的IP地址。InetAddress类常用方法如表15-1所示。1.1InetAddress类URL(UniformResourceLocator,统一资源定位器)表示互联网上某一资源的地址。资源可以是简单的文件或目录,也可以是对更为复杂对象的引用,例如对数据库或搜索引擎的查询。URL是最为直观的一种网络定位方法,符合人们的语言习惯,且容易记忆。在通常情况下,URL可以由协议名、主机、端口和资源四个部分组成,其语法格式如下所示:protocol://host:port/resourceName
其中:
●protocol是协议名,指明获取资源所使用的传输协议,例如http、ftp等,并使用冒号“:”与其他部分进行隔离;
●host是主机名,指定获取资源的域名,此部分由左边的双斜线“//”和右边的单斜线“/”或可选冒号“:”限制;
●port是端口,指定服务的端口号,是一个可选参数,由主机名左边的冒号“:”和右边的斜线“/”限制;
●resourceName是资源名,指定访问的文件名或目录。
例如:URL地址
:8080/student/index.jsp1.2URL类
为了方便处理,Java将URL封装成URL类,通过URL对象记录下完整的URL信息。URL类常用方法及功能如表15-2所示。1.2URL类URLConnection代表与URL指定的数据源的动态连接,该类提供一些比URL类更强大的服务器交互控制的方法,允许使用POST或PUT和其他HTTP请求方法将数据送回服务器。URLConnection是一个抽象类,其常用方法如表15-3所示。1.3URLConnection类
当URL地址中包含非西欧字符时,系统会将这些非西欧字符转换成特殊编码(如“%XX”格式),此种编码称为application/x-www-form-urlencodedMIME。在编程过程中如果涉及到普通字符串和application/x-www-form-urlencodedMIME字符串之间相互转换时,就需要使用URLDecoder和URLEncoder两个工具类。
●URLDecoder工具类提供了一个decode(Strings,Stringenc)静态方法,该方法将application/x-www-form-urlencodedMIME字符串转换成普通字符串;
●URLEncoder工具类提供了一个encode(Strings,Stringenc)静态方法,该方法与decode()方法正好相反,能够将普通的字符串转换成application/x-www-form-urlencodedMIME字符串。1.4URLDecoder和URLEncoder类任务2part认识基于TCP的网络编程TCP/IP通信协议是一种可靠的、双向的、持续的、点对点的网络协议。使用TCP/IP协议进行通信时,会在通信的两端各建立一个Socket(套接字),从而在通信的两端之间形成网络虚拟链路,其通信原理如图15.1所示。基于TCP的网路编程本节概述Java对基于TCP的网络通信提供了封装,使用Socket对象封装了两端的通信端口。Socket对象屏蔽了网络的底层细节,例如媒体类型、信息包的大小、网络地址、信息的重发等。Socket允许应用程序将网络连接当成一个IO流,既可以向流中写数据,也可以从流中读取数据。一个Socket对象可以用来建立Java的IO系统到Internet上的任何机器(包括本机)的程序连接。
包中提供了网络编程所需的类,其中基于TCP协议的网络编程主要使用下面两种Socket:
●ServerSocket:是服务器套接字,用于监听并接收来自客户端的Socket连接;
●Socket:是客户端套接字,用于实现两台计算机之间的通信。基于TCP的网路编程2.1Socket类
使用Socket套接字可以较为方便地在网络上传递数据,从而实现两台计算机之间的通信。通常客户端使用Socket来连接指定的服务器,Socket的两个常用构造方法如下:
●Socket(InetAddress|Stringhost,intport):创建连接到指定远程主机和端口号的Socket对象,该构造方法没有指定本地地址和本地端口号,默认使用本地主机IP地址和系统动态分配的端口;
●Socket(InetAddress|Stringhost,intport,InetAddresslocalAddr,intlocalPort):创建连接到指定远程主机和端口号的Socket对象,并指定本地IP地址和本地端口号,适用于本地主机有多个IP地址的情况。
需要注意的是:上述两个Socket构造方法都声明抛出IOException异常,因此在创建Socket对象必须捕获或抛出异常。端口号建议采用注册端口(范围是1024~49151之间的数),通常应用程序使用该范围内的端口,以防止发生冲突。
例如:创建Socket对象try{Sockets=newSocket("28",9999);...//Socket通信}catch(IOExceptione){e.printStackTrace();}
除了构造方法,Socket类常用的其他方法如表15-4所示。2.1Socket类
通常使用Socket进行网络通信的具体步骤如下:
①根据指定IP地址和端口号创建一个Socket对象;
②调用getInputStream()方法或getOutputStream()方法打开连接到Socket的输入/输出流;
③客户端与服务器根据协议进行交互,直到关闭连接;
④关闭客户端的Socket。
2.1Socket类2.2ServletSocket类ServerSocket是服务器套接字,运行在服务器端,通过指定端口主动监听来自客户端的Socket连接。当客户端发送Socket请求并与服务器端建立连接时,服务器将验证并接收客户端的Socket,从而建立客户端与服务器之间的网络虚拟链路;一旦两端的实体之间建立了虚拟链路,就可以相互传送数据。ServerSocket类常用的构造方法如下:
●ServerSocket(intport):根据指定端口来创建一个ServerSocket对象;
●ServerSocket(intport,intbacklog):创建一个ServerSocket对象,指定端口和连接队列长度,此时增加一个用来改变连接队列长度的参数backlog;
●ServerSocket(intport,intbacklog,InetAddresslocalAddr):创建一个ServerSocket对象,指定端口、连接队列长度和IP地址;当机器拥有多个IP地址时,才允许使用localAddr参数指定具体的IP地址。
需要注意的是:ServerSocket类的构造方法都声明抛出IOException异常,因此在创建ServerSocket对象必须捕获或抛出异常。另外,在选择端口号时,建议选择注册端口(范围是1024~49151的数),通常应用程序使用这个范围内的端口,以防止发生冲突。
下面几行代码示例了创建一个ServerSocket对象:try{ ServerSocketserver=newServerSocket(9999);}catch(IOExceptione){ e.printStackTrace();}ServerSocket类常用的其他方法如表15-5所示。2.2ServletSocket类通常使用ServerSocket进行网络通信的具体步骤如下:①根据指定的端口号来实例化一个ServerSocket对象;②调用ServerSocket对象的accept()方法接收客户端发送的Socket对象;③调用Socket对象的getInputStream()/getOutputStream()方法来建立与客户端进行交互的IO流;④服务器与客户端根据一定的协议交互,直到关闭连接;⑤关闭服务器端的Socket;⑥回到第2步,继续监听下一次客户端发送的Socket请求连接。
2.2ServletSocket类
一般服务器和客户端之间,使用Socket进行基于C/S架构的网络通信,程序设计的过程如下:
①服务器端通过某个端口监听是否有客户端发送Socket连接请求;
②客户端向服务器端发出一个Socket连接请求;
③服务器端调用accept()接收客户端Socket并建立连接;
④通过调用Socket对象的getInputStream()/g
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 瓦斯泵工岗前认证考核试卷含答案
- 钽铌精炼工安全操作能力考核试卷含答案
- 工业废气治理工岗前工作能力考核试卷含答案
- 继电器制造工岗前保密考核试卷含答案
- 绒线编织工安全理论能力考核试卷含答案
- 碳五石油树脂装置操作工岗前理论能力考核试卷含答案
- 野生植物培植工创新应用考核试卷含答案
- 2024年湖南农业大学东方科技学院辅导员招聘备考题库附答案
- 卷板机操作工安全理论考核试卷含答案
- 2024年郑州电力高等专科学校辅导员招聘考试真题汇编附答案
- 铁路劳动安全 课件 第二篇 常见事故预防
- 农贸市场环境卫生清洁行动工作方案
- 淮安市2022-2023学年七年级上学期期末地理试题
- 2024届高考语文二轮复习专题-文言文阅读(上海专用)(解析版)
- 2024可打印的离婚协议书模板
- 2024届广东省深圳市中考物理模拟试卷(一模)(附答案)
- 《房颤的药物治疗》课件
- 诊所污水处理管理制度
- 辅导员工作的职责与使命课件
- 新疆交通职业技术学院教师招聘考试历年真题
- 吊篮租赁安拆分包合同
评论
0/150
提交评论