Java学习知识点小结6(网络)

1.
IP:定位计算机
端口:定位计算机上不同的软件
URL:统一资源定位符

2.
OSL(开发系统互联参考模型):物理层,数据链路层,网络层,传输层,会话层,表示层,应用层
TCP/IP参考模型:
应用层(对应OSI应用层,表示层,会话层):准备数据
传输层(对应OSI传输层):加上TCP头部封装数据变为“段”
网络层(对应OSI网络层):加上IP头部,数据称为“包”
网络接口(对应OSI物理层,数据链路层):链路层的数据单元称为“帧”,物理层将数据转换为比特流

3.
InetAddress类:
(InetAddress类没有构造方法,通过两个静态方法获得InetAddress的对象:getLocalHost,getByName)

InetAddress addr=InetAddress.getLocalHost();//创建InetAddress对象
addr.getHostAddress();//返回本机IP地址
addr.getHostName();//返回本机名

addr=InetAddress.getByName(“www.baidu.com”);//根据域名获得InetAddress对象

4.端口
公认端口0~1023
注册端口1024~49151
动态/私有端口49152~655335
查看所有端口控制台命令:netstat -ano
查看指定端口进程:netstat -aon|findstr “端口号”
进程号查看进程:tasklist|findstr “进程号”

InetSocketAddress类:(实现IP地址+端口号)
InetSocketAddress addr2=new InetSocketAddress(“IP地址/域名”,端口号);
getPort();得到端口号
getAddress();得到地址

5.URL类:
主要组成:协议+存放资源的主机域名+端口号+资源文件名
URL url=new URL("协议+存放资源的主机域名+端口号+资源文件名 ")
url.getProtocol();//得到该url的协议
url.getHost();//得到域名
url.getPort();//得到端口
url.getFile(); url.getPath();//请求资源

socket编程(传输层与应用层打交道的方式)

TCP,UDP传输层协议
6.UDP编程(需要较快地接收数据并且可以忍受较小错误的情况下)
DatagramPacket:数据包
DatagramSocket:发送和接收数据报包的套接字
UDP步骤:
接收方:
1.使用DatagramSocket 指定端口,创建接收端
2.准备容器 封装成DatagramPacket包裹
3.阻塞式接受包裹receive(DatagramPacket p)
4.分析数据 getData(),getLength()
数据都为byte[]
5.释放资源
发送方:
1.使用DatagramSocket 指定端口,创建发送端
2.准备数据,转换为字节数组
3.封装成DatagramPacket包裹,指定目的地端口
4.发送包裹send(DatagramPacket p)
5.释放资源

7.TCP编程(面向连接,安全可靠)
(请求响应模式 || 利用输入流输出流)
步骤:
服务器端:
创建ServeSocket(int port)对象 ///指定端口
在Socket上监听客户端的连接请求
阻塞,等待连接建立
接收并处理请求信息
将处理结果返回客户端
关闭流和Socket对象

客户端:
创建Socket(String host,int port)对象 ///指定服务器位置与端口,创建则完成连接
向服务器发送连接请求
向服务器发送服务请求
接收服务结果
关闭流和Socket对象

具体方法可以阅读单独博客

8.java分割数组
String[].split(String regex, int limit)
regex 是正则表达式分隔符,有些字符需要转义,例如 ”\*“
limit分割的份数

9.反射:每一个类都有class对象,类的图纸
获取类对象的三种方法:
普通方法:A a=new A();//A为一个类的类名,a为A类对象
Class clz=new a.getClass();
clz=A.class;

推荐使用Class类静态方法
Class clz=Class.forName(“包名”,“类名”);
动态创建对象: A a=(A)clz.getConstructor().newInstance();// 获取构造函数的参数并创建,A为接口名(类名)

10. SAX解析XML
具体见博客 https://editor.csdn.net/md/?articleId=105032130

11.hmtl:
表单的使用
post:提交 ,基于http协议不同 量大 请求参数url不可见 安全
get: 默认,获取,基于http协议不同 量小 请求参数url可见 不安全
action: 请求web服务器的资源 URL
name:作为后端使用,区分唯一: 请求服务器,必须存在,否则数据不能提交
id: 作为前端使用,区分唯一

12.http协议:超文本传输协议,应用层协议
请求协议
1.请求行:方法(GET:在URI后直接带请求参数/POST:在请求头后空一行放请求参数),URI(请求的资源路径),协议/版本
2.请求头:(Request Header)
3.请求正文(POST才有,与请求头之间有个空行,格式:name=value&&name=value)

GET请求在这里插入图片描述
get请求包括:
1.form标签:method=get
2.a标签
3.link标签引入css
4.Script标签引入js文件
5.img标签引入图片
6.iframe引入html页面
7.在浏览器输入地址后敲击回车

POST请求在这里插入图片描述
post请求包括:
form标签:method=post

响应协议:
1.状态行:协议/版本(HTTP/1.1) 状态码(2xx表示成功,4xx客户端错误) 状态描述(OK)
2.响应头:Date:new Date();
Server:服务器名;charset:字符集
Content-type:text/html(返回类型)
Content-length:正文大小
3.响应正文:(与响应头之间有个空行)
在这里插入图片描述

13.this();代表本类的构造器
14.手写webserver,详情看单独博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值