Java基础之网络编程

300集
简单笔记

网络编程

举例:IP地址区分电脑。(用来标识网络中的一个通信实体,通信实体可以是计算机,路由器等)。
IP地址分类:
IPV4:32位地址,以点分十进制表示,如192.168.0.1
IPV6:128位(16个字节)写成8个16位的无符号整数,每个整数用四个十六进制位表示,数之间用冒号隔开,
特殊IP;127.0.0.1(本机地址),
192.168。0.0-192.168.255.255是私有地址,属于非注册地址,专门为组织机构内部使用。
端口(Port)定位电脑中的软件。(端口是一个虚拟概念,它并不是真实存在的)。端口的表示是一个16位的二进制整数,2个字节,对应十进制的0-65535。不同的协议有他们自己不同的端口,在同一协议下,端口不能冲突。
公认端口:0-1023
注册端口;1024-49151
动态、私有端口;49152-65535
常见端口:80–HTTP;8080-Tomcat; 1521–Oracle 3306–MySQL
查看所有端口:netstat -ano
查看指定端口:netstat -ano|findstr “1506”
查看指定进程:tasklist|findstr“1206”
查看指定程序:使用任务管理器查看PID

URI:Universal Resource Identifier统一资源标志符,用来标识抽象或物理资源的一个紧凑字符串。
URL:Universal Resource Locator(统一资源定位符)定位软件中的每一份资源。一种定位资源的主要访问机制2的字符串,一个标准的URL必须包括:protocol(协议),host(存放资源的主机名),port(端口号),path(资源文件名),parameter,anchor(锚点:用于同一个页面或网站的定位#)。
URN:Universal Resource Name 统一资源名称,通过特定命名空间中的唯一名称或者I来标志资源。
跳转还可以用超链接。超链接可以用于同一个或者不同网站之间的跳转。
协议是彼此之间通信需要遵守的规范。

TCP和UDP都是传输层的协议。TCP更安全,面向连接。UDP更高效,但是不是面向连接的。
网页编程和网络编程不是同一个概念。网络编程关注TCP和UDP,关注底层的传输。而网页编程关注JSP和socket,它关注的是上一层的应用开发。

了解B/S和C/S的联系与区别。

网络中了解通讯协议和通信接口;
通讯协议:对速率,传输代码,代码结构,传输控制步骤,出错控制制定的标准。
通信接口:为了使两个结点之间能进行对话和信息交换。
接口包含硬件装置和软件装置。
硬件装置实现结点间的信息传送;
软件装置规定了双方进行通信的约定协议。

OSI参考模式:开放系统互连参考模型(Open System Interconnect)
物理层–数据链路层—网络层—传输层–会话层–表示层–应用层
同层间可以通信,上一层可以调用下一层,而与再下一层不发生关系。

OSI网络通信协议模型是一个参考模型,事实上的标准是TCP/IP协议。
TCP/IP参考模型:传输控制/网际协议 Transfeer Controln Protocol/Internet Protocol
TCP/IP是一个协议族,分为四层;
应用层;包含Telnet,FTP,SMTP,DNS(域名解析),HTTP等应用协议。
传输层;TCP,UDP。
网络层;IP,ARP,RARP,ICMP.
网络接口;各种通信网络接口(以太网等)物理网络。

数据封装:Data Encapsulation是指将协议数据单元(PDU)封装在一组协议头和协议尾中的过程。

发送方数据处理的方式是从高层到底层,逐层进行数据封装。
应用层;准备数据;
传输层;接收应用层数据添加上TCP的控制信息(TCP头部),这个数据单元称为段(Segment),加入控制信息的过程称为封装。然后再将段交给网络层。
网络层;接收到段,再添加上IP头部,这个数据单元称为包(Packet),然后将包交给数据链路层。
数据链路层;将包再添加上MAC头部和尾部,这个数据单元称为帧(Frame),然后再传给物理层。
物理层;’接接收到的数据转换为比特流,然后再通过网线传输。

数据拆封:Data dismantling是指将接收到的数据进行拆包,每一层只把对该层有意义的数据拿走,也就是说每一层只能处理发送方向等层的数据,然后将其他的部分传送给上一层,这就是对等通信。
接收方数据处理的方式是从底层到高层,逐层进行数据解封装。
物理层:接收比特流,经过处理后交给数据链路层。
数据链路层;将接收到的数据转换为数据帧,再除去MAC头部和尾部,这个除去控制信息的过程称为解封,然后再将包传给网络层。
网络层;接收到包,除去IP控制信息,然后将段传给传输层。
传输层;接收到段,再除去TCP头部,然后再将数据交给应用层。
应用层;处理数据。

Web Spide

网络爬虫的相关套路:
1获得URL
2 下载
3 分析–>正则表达式
4.数据清洗和存储。
SEO:搜索引擎优化,提高排名。
SEM:付费做广告。
一个页面的源代码包含HTML,CSS和JS(动态语言,边编译边执行,能够互动)。
Java不是动态语言,它是先编译后执行,但Java可以通过反射具有动态特性。
请求方式:get和post,post相对更安全。

传输协议

TCP(transfer control protocol):一种面向连接(连接导向)的,可靠的,基于字节流的传输层(Transfer layer)通信协议。
特点:面向连接,点到点的通信,高可靠性,占用资源多,效率高。它上面应用层的协议主要有FTP和HTTP以及SMTP
重点掌握TCP的三次握手。
UDP(User DatagramProtocol):一种无连接的传输层协议,提供面向事务的简单不可靠信息传递协议。
特点;效率高,非面向连接,传输是不可靠,可能会丢失数据;发送不管对方是否准备好,接收方收到也不会确认;可以广播发送;非常简单的协议,开销小。它上面应用层协议主要有DNS和SNMP.

套接字socket :主要用来分离应用层和传输层之间的操作。
基于TCP协议的Socket编程:通信双方需要建立连接,而且连接建立时双方存在主次之分。一般先建立服务器再建客户端。
而基于UDP协议的Socket编程:不需要建立连接,而且通信双方完全平等。

UDP
基本流程
*发送端
*1 使用DatagramSocket 指定端口

  • 创建接收端
  • 2 准备数据 一定要转换成字节数组
  • 3 封装成DatagramPacket包裹 需要指定目的地
  • 4 发送包裹send(DatagramPacket p)
  • 5 释放资源
    接收端
    *Address already in use: Cannot bind 同一个协议下端口不允许冲突
  • 1 使用DatagramSocket 指定端口
  • 创建接收端
  • 2 准备容器 封装成DatagramPacket包裹
  • 3 阻塞式接收包裹receive(DatagramPacket p)
  • 4 分析数据
  • byte[] getData()
  •    getLength()
    
  • 5 释放资源

TCP编程
TCP编程给予请求-响应模式
在网络通讯中,第一次主动发起通讯的程序被称为客户端Client程序;
第一次通讯中等待连接的程序被称作服务器端Server程序。
利用IO流实现数据的传输。
熟悉TCP编程的流程

  • 创建服务器
  • 1 指定端口 使用ServerSocket创建服务器
  • 2 阻塞式等待连接 accept
  • 3 操作:输入输出流
  • 4 释放资源
    * 创建客户端
    * 1 建立连接:使用Socket客户端+服务的地址和端口
    * 2 操作:输入输出流
    * 3 释放资源
    掌握它们的应用

Closeable的使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值