当前位置: 首页 > 网络学院 >

黑马程序员----java基础--网络编程

www.365-588.com XKER.COM 时间:2015-08-20 15:19:18来源:金逗逗 博客园  评论:

一、 网络参考模型

1、OSI参考模型和TCP/IP 参考模型

黑马程序员----java基础--网络编程_www.365-588.com

七层描述:

(1). 物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流。

(2). 数据链路层:主要将从物理层接收的数据进行MAC地址(网卡的地址)的封装与解封装。这一层工作的设备是交换机,数据通过交换机来传输。

(3). 网络层:主要将下层接收到的数据进行IP地址(例,192.168.0.1)的封装与解封装。这一层工作的设备是路由器。。

(4). 传输层:定义了一些传输数据的协议和端口号(WWW端口号80等),主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组。

(5). 会话层:通过传输层(端口号:传输端口与接收端口)建立数据传输的通路。主要在你的系统之间发起会话或者接收会话请求(设备之间需要互相认识可以是IP也可以是MAC或者是主机名)。

(6). 表示层:主要是进行对接收的数据进行解释,加密与解密、压缩与解压缩等(也就是把计算机能够识别的东西转换成人能够识别的东西(如图片、声音等)。

(7). 应用层:主要是一些终端的应用,比如说FTP(各种文件下载)、WEB(IE浏览)、QQ之类的(可以把它理解成我们在电脑屏幕上可以看到的东西,就是终端应用)。

注:

(1).每个网卡的MAC地址都是全球唯一的。

(2).路由器实现将数据包发送到指定的地点。

(3).应用软件之间通信的过程就是层与层之间封包、解包的过程

(4).OSI参考模型虽然设计精细,但过于麻烦,效率不高,因此才产生了简化版的TCP/IP参考模型。

2、网络通信三要素:IP地址,端口号,传输协议。

(1)、IP地址:InetAdderss类

1.它是网络中的设备标识

2.不易记忆,可用主机名表示,两者存在映射关系

3.IPV4数量已经不够分配,所以产生了IPV6

4.本地回环地址:127.0.0.1 主机名:localhost

5.在没有连接互联网的情况,为了让访问本机方便,所以分配了一个默认的IP地址,也就是本地回环地址

(2)、端口号

1.用于标识进程(应用程序)的逻辑地址,不同进程的标识

2.有效端口:0~65535,其中0~1024系统使用或保留端口。

3.没有程序都有端口号用来定为应用程序

(3)、传输协议

这是通讯的规则。常见协议有:UDP、TCP。

UDP

1.将数据以及源和目的封装成数据包中,不需要建立连接

2.每个数据包的大小限制在64k内

3.因无连接,所以是不可靠的协议

4.不需要建立连接,速度快

应用案例:QQ聊天、视频聊天、对讲机、FeiQ、视频教学等在线视频都是UDP

TCP

1.建立连接,形成传输数据的通道

2.在连接中进行大数据量传输

3.通过三次握手完成连接,是可靠协议。三次握手:第一次本方发送请求,第二次对方确认连接,第三次本方确认对方连接成功。

4.必须建立连接,效率会稍低

应用案例:FTP文件传输、迅雷下载、打电话

3、java.net.InetAdderss常用网络方法

无构造函数,只能用方法返回本类对象

  1. static  InetAddress    getLocalHost();//返回一个InetAdderss本类对象 
  2. static  String    getHostName();//返回此ip地址的主机名 
  3. static   String    getHostAddress();//返回ip地址字符串 
  4. String    toString();//返回此ip地址的String表现形式 
  5. static    InetAddress    getByName(String host);//获取指定主机名的ip地址 
  6. static  InetAddress[]    getAllByName(String host);//获取指定主机名的全部ip地址 

代码演示:

  1. import java.net.*; 
  2. class InetAddressDemo  
  3.     public static void main(String[] args) throws Exception 
  4.     { 
  5.         InetAddress ia= InetAddress.getLocalHost();//返回InetAddress本来对象 
  6.         String name=ia.getHostName();//获取IP地址的主机名 
  7.         String ip=ia.getHostAddress();//获取本地ip地址 
  8.         System.out.println("name="+name); 
  9.         System.out.println("ip="+ip); 
  10.  
  11.         InetAddress i=InetAddress.getByName("192.168.1.1");//获取指定主机的IP 地址 
  12.         System.out.println(i.getHostAddress()); 
  13.  
  14.         InetAddress[] ina=InetAddress.getAllByName("www.sina.com.cn");//获取指定主机名的全部ip地址 
  15.         for (InetAddress a:ina ) 
  16.         { 
  17.             System.out.println(a.getHostAddress()); 
  18.             System.out.println(a.getHostName()); 
  19.         } 
  20.     } 

如果本文对您有帮助请分享给您的好友,也可按Ctrl+D收藏本页面,谢谢!感谢本文来源方:金逗逗 博客园

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)