网络编程基础知识
1、 网络分层:
OSI参考模式(参考模型)
|
应用层 |
|
表示层 |
|
会话层 |
|
传输层 |
|
网络层 |
|
数据链路层 |
|
物理层 |
TCP/IP参考模型:传输控制/网络协议
协议集分为四层:应用层、传输层、互联网络层、网络接口层
|
应用层 |
Telnet、FTP、SMTP、DNS、HTTP、以及其他应用 |
|
传输层 |
TCP、UDP |
|
网络层 |
IP、ARP、RARP、ICMP |
|
网络接口 |
各种通信网络接口(以太网等) |
IP地址:用来标识网络中的一个通信实体的地址。
分类:
IPV4:32位地址,以十进制表示
IPV6:128位(16个字节)写成8个16位的无符号整数,每个整数用4个十六进制位表示,数字之间用冒号分开。
InetAddress:封装计算机的ip地址,没有端口。
端口:用来区分不同的网络应用程序。
公认端口:0-1023
注册端口:1024-49151
动态/私有端口:49152-65535
InetSocketAddress:包含端口,用于socket通信。
常用方法:getAddress()、getPost()、getHostName()
URL:统一资源定位符:4部分组成(协议、存放资源的主机域名、端口、资源文件名)
http://www.baidu.com:80/index.html
协议 存放资源的主机域名 端口 资源文件名
网络爬虫原理:
1、 获取URL
2、 下载资源
3、 分析数据
4、 存储数据
2、 传输协议
TCP(transfer control protocol):一种面向连接的、可靠的、基于字节流的运输层通信协议。(三次握手)(例如:打电话;应用:HTTP、FTP)
特点:
面向连接、
点到点的通信、
高可靠性、
占用系统资源多、效率低
UDP(User DatagramProtocol):一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。(例如:写信;应用:DNS<域名解析>、SNMP)
特点:
非面向连接,传输不可靠,可能丢失数据、
发送不管对方是否准备好,接收方收到也不确认、
可以广播发送、
非常简单的协议,开销小
套接字Socket:应用层(网络应用程序)与传输层(TCP/UDP)连接
Socket编程:
基于TCP协议的Socket编程 基于UDP协议的Socket编程
通信双方需要建立连接 通信双发不需要建立连接
连接建立时双方存在主次之分 通信双方完全平等
基于UDP编程:
DatagramSocket:用于发送或接收数据包的套接字
DatagramPacket:数据包
接收端:
1、使用DatagramSocket指定端口 创建接收端
2、准备容器 封装成DatagramPacket包裹
3、阻塞式接收包裹receive(DatagramPacket p)
4、分析数据
byte[] getData()
getLength()
5、释放资源
客户端:
1、使用DatagramSocket指定端口 创建接收端
2、准备数据 一定转成字节数组
3、封装成DatagramPacket包裹,需要指定目的地
4、发送包裹send(DatagramPacket p) *
5、释放资源
TCP编程
基于请求响应模式,通过IO流实现数据的传输。
服务器创建ServerSocket,在指定端口监听并处理请求
客户端创建Socket,向服务器发送请求。
创建服务器:
1、 指定端口 使用ServerSocket创建服务器
2、 阻塞式等待连接accept
3、 操作:输入输出流操作
4、 释放资源
创建客户端:
1、 建立连接:使用Socket创建客户端+服务的地址和端口
2、 操作:输入输出操作
3、 释放资源

浙公网安备 33010602011771号