网络编程
http://t.csdn.cn/fNwLThttp://t.csdn.cn/fNwLThttp://t.csdn.cn/wpUSF
http://t.csdn.cn/wpUSF
网络概述
相互连接的计算机,交换数据、共享资源
IP地址介绍
两台计算机通信,双方都必须有地址----IP地址 IP地址------唯一标识网络上的每一台计算机
IP地址的组成
32位,由4个8位二进制数组成 IP地址=网络地址+主机地址
网络地址 标识计算机或网络设备所在的网段
主机地址 标识特定主句或网络设备
IP地址的配置和检测
查看IP地址,检测网络是否畅通
查看本机IP地址 ipconfig
DNS域名解析
将域名解析成IP,服务由DNS服务器完成,是把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定
网络服务器
通常指在网络环境下,具有较高计算能力,能够提供用户服务功能的计算机
网络通信协议
为了在网络中不同的计算机之间进行通信儿建立的规则、标准或约定的集合
应用层
HTTP FTP TFTP SMTP SNMP DNS
传输层
TCP UDP
网络层
ICMP IGMP IP ARP RARP
数据链路层
由底层网络定义的协议
物理层
由底层网络定义的协议
Socket
Socket简介
Socket的底层机制复杂,Java平台提供了一些简单的API,可以更简单有效的使用Socket开发而无需了解底层机制
通信链路的端点就被称为“套接字”(英文名Socket)
是提供给应用程序的接口
什么是Socket
简单来说就是IP地址与端口的结合协议 一种地址与端口的结合描述协议
TCP/IP协议的相关API的总称;是网络Api的集合实现
涵盖了:Stream Socket/ Datagram Socket
Socket的作用与组成
在网络传输中用于唯一标识两个端点之间的连接
端点:包括(IP+Port)
4个要素:客户端地址、客户端端口、服务器地址、服务器端口
Socket之TCP
TCP是面向连接的通信协议
通过三次握手建立连接,通讯完成时要拆除连接
由于TCP是面向连接的所以只能用于端到端的通讯
Socket之UDP
UDP是面向无连接的通讯协议
UDP数据包括目的端口号和源端口号信息
由于通讯不需要连接,所以可以实现广播发送,并不局限于端到端
java.net包
Socket
ServerSocket
DatagramPacket
DatagramSocket
InetAddress
…………
基于TCP协议的Socket编程
Socket网络编程一般可以分成如下步骤进行
建立连接
打开Socket关联的输入输出流
数据流中读写信息
关闭所有的数据流和Socket
Socket中实现对象的传递
序列化传递对象信息 :ObjectOutputStream oos = new ObjectOutputStream(…);
oos.writeObject(…);
ObjectInputStream ois = new ObjectInputStream(…);
Object = ois.readObject();
多线程处理多请求
采用多线程的方式
一个专门负责监听的应用主服务程序
一个专门负责处理请求的线程程序
xml
http://t.csdn.cn/18drfhttp://t.csdn.cn/18drfhttp://t.csdn.cn/qMKYW
http://t.csdn.cn/qMKYW
XML简介
XML(EXtensible Markup Language),可扩展标记语言
特点
XML与操作系统、编程语言的开发平台无关
实现不同系统之间的数据交换
作用
数据交互
配置应用程序和网站
Ajax基石
XML文档结构
声明:<?xml version="1.0" encoding="UTF-8"?>
文档元素描述信息
XML标签
XML文档内容由一系列标签元素组成:<元素名 属性名=“属性值”>元素内容</元素名>
空元素:
<name> </name>
<name></name>
<name/>
注意:1.属性值用双引号包裹 2.一个元素可以有多个属性 3.属性值中不能直接包含<、“、& 4.不建议使用的字符:‘、>
XML编写注意事项
所有XML元素都必须有结束标签
XML标签对大小写敏感
XML必须正确的嵌套
同级标签以缩进对齐
元素名称可以包含字母、数字或其他的字符
元素名称不能以数字或者标点符号开始
元素名称中不能含空格
XML解析器
解析器类型
非验证解析器---检查文档格式是否良好
验证解析器---使用DTD检查文档的有效性
解析XML技术
DOM
基于XML文档树结构的解析
适用于多次访问的XML文档
特点:比较消耗资源
SAX
基于事件的解析
适用于大数据量的XML文档
特点:占用资源少,内存消耗小
DOM4J
非常优秀的Java XML API
性能优异、功能强大
开放源代码
DOM解析XML
DOM介绍
文档对象模型(Document Object Model)
DOM把XML文档映射成一个倒挂的树
<book >
<title>三国演义</title>
<author>罗贯中</author>
<price>30元</price>
</book>
常用接口介绍
DOM解析包:org.w3c.dom
DOM解析XML文件步骤
1.创建解析器工厂对象
2.解析器工厂对象创建解析器对象
3.解析器对象指定XML文件创建Document对象
4.以Document对象为起点操作DOM树
DOM解析XML
保存XML文件
获得TransformerFactory对象
创建Transformer对象
创建DOMSource对象---包含XML信息
设置输出属性---编码格式
创建StreamResult对象---包含保存文件的信息
将XML保存到指定文件中
添加DOM节点
通过Document调用方法创建一个元素节点
通过创建的元素节点调用方法给元素节点设置属性及属性值
将创建好的两个节点建立关系
获取xml文件中创建好的标签的上一个元素节点,然后将创建好的标签作为子节点追加到获取元素节点中,一直追加到无法追加为止
元素添加完毕之后需要将java内存中的document对象存储到xml文件中
修改DOM节点
通过document对象获取你要修改的元素,将获取的元素存储在节点集合中
遍历节点集合:修改节点(给节点添加了一个id属性)
取出节点集合中的元素
将节点元素转换成其真正的类型
给元素节点添加了一个新的属性id
删除DOM节点
通过document对象获取你想要删除的元素节点,将元素节点存储在节点集合中
遍历集合 取出节点集合中的元素
将节点转换成真正的类型
从遍历出的元素节点找出你要删除的元素节点,通过元素节点的属性值来找
删除元素不能自己删除自己,需要通过其父元素来删除,getParentNode(),获取父节点 removeChild()删除子节点
DOM4J解析XML
DOM4J
Document:定义XML文档
Element:定义XML元素
Text:定义XML文本节点
Attribute:定义了XML 的属性
使用DOM4J需要导入文件,https://dom4j.github.io/#parsing 在这里面可以找到