Java学习日记----网络编程

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

1 概述  

  1.1 网络通讯的三大要素:IP地址,端口号,传输协议.   

    a> 通过IP地址找到对方.   

    b> 数据要发送到对方指定的应用程序上,为了标识这些应用程序,所以给这些网络应用程序都用数字进行标识,为了方便称呼这些数字,叫做端口(是逻辑端口,不是物理端口).   

    c> 定义通讯规则,这个规则称为协议,同际组织定义了通常的协议,TCP/IP,为常见的协议.TCP/IP既能用于局域网,又能用于广域网.

2 IP地址  

  2.1 IP地址是使用了32位或128位无符号数字,它是一种低级的协议,UDP和TCP协议都 是在它的基础上构建的.  

  2.2 IP地址分为四段,每一段就是一个字节,所以每段的最大值为255.如果主机没有设置任何IP地址的情况下,本机默认的就是127.0.0.1(本要回环地址).在所有的IP地址中有一些IP地址被保留了,一般不用于公网上,而是用于局域网,如192.168段,10.10段.

3 网络模型  

  3.1 网络模型有:OSI参考模型和TCP/IP参考模型.  

  3.2 网络在传输过程中,为了更细致的划分其各传输层次所对应的功能不一样,而有了层次的细致划分也就是为了区分它们都在什么时候该做什么事就把它们按照层次的形式进行细致的划分,每个层次都有自己所做的事情.

      a> OSI参考模型主要划分为七个层次,分别为:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层.   

      b> TCP/IP参考模型不要划分为四个层次,分别为:应用层,传输层,网际层,主机至网络层.   

      c> 网络编程主要在网际层和传输层,WEB开发主要在应用层,每层都其对应的协议(通讯规则),如传输层:TCP,UDP;网际层:IP;应用层:http,Ftp.  

  3.3 数据的拆包与封包   

    在数据传输过程中,数据首先会在应用层封装,然后向下传递,经过每一层,该层都会对数据进行封装,即加上该层特有的数据标识,直到物理层,这一过程称为数据的封包.封好的数据发送到另一台电脑上的物理层,由物理层接收,向上传递,经过每一层,该层会解封掉该层特有的数据标识,直到应用层,这一过程称为数据的拆包,在应用层,识别应用程序的端口,以确定数据发送给哪个应用程序.

4 UDP和TCP  

  4.1 UDP   

    1> UDP是将数据源和目的封装的数据包中,不需要建立连接,每个数据包的大小限制在64K以内,因为是无连接的,所以是一种不可靠的协议,但是速度很快.聊天就是用UDP的,飞秋也是,因为数据不重要求的是速度.   

    2> UDP发送端    

      每个传输协议都有其对应的建立端点的方式,UDP用DatagramSocket发送数据.建立UDP发送的步骤为:建立UDPSocket,建立端点,然后将要被发送的数据封装到数据包中.包中含有发送的目的地,通过Socket服务的发送功能将数据包发送,最后关闭资源.  

    3> UDP接收端    

      a> 建立Socket服务.    

      b> 定义一个数据包,用于存储接收到的数据.    

      c> 通过Socket服务的receive()方法将接收到的数据存储到已定义好的数据包中,receive()方法是一个阻塞式方法.    

      d> 通过数据包对象的功能,将包中的数据取出.    

      e> 关闭资源.  

  4.2 TCP   

    1> 面向连接,形成传输数据的通道,在连接中进行大量数据的传输,通过三次握手完成连接,是可靠的协议,因为必须要建立连接,效率会稍低.   

    2> 三次握手    

        先向对方发送一次数据(哥们,在吗?),对方收到后,回复,表示收到了发送过去的数据(老师,我在.),收到对方的回复之后,再向对方发送一份数据,表示收到对方的回复(哦,我知道你在了).   

  3> TCP客户端    

    创建Socket服务,并指定要连接的主机和端口,通路一旦建立就有Socket流,Socket中既有输出流,又有输入流.   

  4> TCP服务端    

    a> 建立ServerSocket服务,并监听一个端口.    

    b> 获取连接过来的客户端对象,是通过ServerSocket对象的accept()方法完成的,此方法为阻塞式方法.    

    c> 获取对应的客户端对象的输入流来读取发送过来的数据.    d>关闭资源(服务端可关,可不关,但是客户端一定要关)

5 自定义浏览器----tomcat服务器  

  5.1请求消息头   

    a> "get":一种请求方式,格式为:/资源路径/资源 http版本.   

    b> 对应请求消息头的是应答消息头,第一行是请求行,在请求消息头的最后一行,还有一空行,空行下面是请求体,请求消息头和请求体必须用一空行隔开,这是规则.   

    c> 自定义浏览器时,请求消息不一定要发全,浏览器的配置不一样,发送的请求消息头也不一样.

6 域名解析  

  6.1 一般在上网时,写的都是域名(如.www.sina.com.cn),而不是IP地址,想要将域名翻译成IP地址就需要域名解析---->DNS(域名解析服务器).  

  6.2 DNS中记录的是域名和IP地址的映射关系.其实127.0.0.1和localhost映射关系就在本机上(C:\windows\system32\drivers\etc\hosts).  

  6.3  当去访问主机时,先在本机的hosts文件里面找,如果没有找到,则到DNS上找.  

     应用:在hosts里面配置域名和地址映射关系,就不用去DNS上找,可提高网速,屏蔽恶意,垃圾网站

posted @ 2012-12-08 00:00  叶征东  阅读(93)  评论(0编辑  收藏  举报