一、网络编程的概述
网络模型:OSI(Open System Interconnection)才考模型
TCP/IP参考模型
网络分为7层,分别是:
物理层
主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等
数据链路层
主要从物理层接受的数据进行MAC地址的封装与解封装,这一层主要的设备是交换机
网络层
从下层接受到的数据进行IP地址的封装与解封装,这一层的主要设备是路由器,这一层也常叫为数据包
传输层(JAVA中网络编程主要在这一层)
定义了一些传输数据的协议和端口号,如TCP、UDP,主要是将从下层接受到的数据进行分段和传输,到达目的地址后再进行重组
会话层
主要在系统之间发起会话或者接受会话请求
表示层
主要进行数据的解释、加密、解密、压缩、解压缩(也就是把计算的表示方式转换为人能识别的东西(图片、声音等))
应用层
主要使一些终端应用,比如FTP、WEB、QQ之类
以面向用户可见为基础,层的排序为:
应用层---表示层----会话层----传输层-----网络层----数据链路层----物理层
发送方: 接收方:
---------------------------------------------->
上图是一个数据的传输过程,在发送端需求从应用层发出,经过应用层逐层封包传输,到达接收端后,从物理层逐层剥开(解包),最后到应用层时则体现发送端的意图
二、 网络要素:---IP地址、端口号、传输协议
Ip地址:InetAddress
本地回环地址:127.0.0.1 主机名:localhost
端口号:
用于标识进程的逻辑地址,不同进程的标识
有效端口:0~65535,其中0~1024系统保留
传输协议:
常见协议:TCP、UDP
UDP:类似于到邮局发包裹:将物品、地址、收件人全部打包好,直接发过去(至于地址、收件人正确与否不重要),也类似于对讲机(QQ,FeiQ)
TCP:类似于打电话,必须对方接通后才能进行通讯,下载数据就是此协议
通讯录的规则:
三、 IP对象:InetAddress对象
Java.net包中包含了常用网络编程类
获取本地主机对象:getLocalHost() 他会抛出UnknowHostException异常
获取主机名:getHostName()如果是获取网络中的机器名会较慢
获取主机IP地址:getHostAddress()
获取指定主机的IP地址对象:getByName(“192.168.0.100”)这里传入的可以是IP地址,也可以是计算机名称
四、 域名解析
DNS:域名解析服务器,对用户输入的网址进行解析,并跳转到相应的IP地址主机上
比如:输入www.baidu.com后通过域名解析服务器查询到发现baidu.com对应的IP是10.1.1.1,此时通过解析器之后会将IP地址转交给浏览器,最后访问这个IP对应的服务器
也可以在本机上创建一个域名解析:
打开C:\Windows\System32\drivers\etc\的hosts文件,添加 127.0.0.1 www.chao.com