这是我参与更文挑战的第4天,活动详情查看: 更文挑战
网络编程概述
IP和端口号
一定的规则(网络通信协议):
- OSI参考模型:七层
- TCP/IP参考模型:四层
网络通信协议
- IP地址:InterAddress
- 分类:IPV4 (四个字节)和 IPV6 (十六个字节)
网络通信的两个问题:
一、如何准确的定位主机以及机上特定的应用
二、找到主机后如何可靠高效地进行数据传输
通信要素一:IP和端口号
IP的理解
- IP:唯一标识Internet上的计算机(通信实体)
- 在Java中使用InterAddress类代表IP
- IP分类:IPV4 和 IPV6;万维网和局域网
- 域名:www.baidu.com
- 本地回路地址:127.0.0.1 对应 localhost
-
InetAddress类:此类代表一个具体的IP地址
-
如何实例化InetAddress的两个方法:getByName(String host)、getLocalHost()
-
两个常用方法:getHostName()/getHostAddress()
端口号:
不同进程有不同的端口,规定为一个16位的整数0~65535 端口分为公认端口、注册端口、动态/私有端口
端口和IP地址的组合得出的一个网络套接字:Socket
通信要素二:提供网络通信协议
分型模型
TCP协议
TCP三次握手、四次挥手 释放已建立的连接,效率低
UDP协议
无需释放资源,开销小,速度快
实现TCP的网络编程
URL网络编程
- URL:统一资源定位符,对应着互联网的某一资源地址
- 格式:协议 主机名 端口号 资源地址 参数列表
Ip对应类的对象:InetAddress
- Ip对应类的对象:InetAddress
- 两个实例化的方法:InetAddress.getByName(String host)/InetAddress.getLocalHost()
- 两个常用的方法:getHostName(),getHostAdress()。
传输层的TCP协议和UDP协议的主要区别
- TCP:可靠的数据传输(三次握手);进行大数据量的传输;效率低
- UDP:不可靠;以数据报形式发送,数据包限定为64k;效率更高。
URL
- URL:统一资源定位符 URL url=new URL ("http://localhost:8080/examples/1.jpg");
对象序列化机制的理解
- 序列化过程
- 反序列化过程
实现序列化条件
- 实现接口:Serializable 标识接口
- 对象所在的类提供常量:序列版本号
- 要求对象的属性也是可序列化的。(基本数据类型本身是可序列化的)