网络编程基础知识

1、 网络分层:

  OSI参考模式(参考模型)                                  

应用层

表示层

会话层

传输层

网络层

数据链路层

物理层

 

  TCP/IP参考模型:传输控制/网络协议

  协议集分为四层:应用层、传输层、互联网络层、网络接口层

应用层

Telnet、FTP、SMTP、DNS、HTTP、以及其他应用

传输层

TCP、UDP

网络层

IP、ARP、RARP、ICMP

网络接口

各种通信网络接口(以太网等)

 

IP地址:用来标识网络中的一个通信实体的地址。

分类:

        IPV4:32位地址,以十进制表示

       IPV6:128位(16个字节)写成8个16位的无符号整数,每个整数用4个十六进制位表示,数字之间用冒号分开。

 

  InetAddress:封装计算机的ip地址,没有端口。

 

端口:用来区分不同的网络应用程序。

       公认端口:0-1023

       注册端口:1024-49151

       动态/私有端口:49152-65535

 

       InetSocketAddress:包含端口,用于socket通信。

              常用方法:getAddress()、getPost()、getHostName()

 

URL:统一资源定位符:4部分组成(协议、存放资源的主机域名、端口、资源文件名)

       http://www.baidu.com:80/index.html

       协议   存放资源的主机域名 端口    资源文件名

 

网络爬虫原理:

  1、 获取URL

  2、 下载资源

  3、 分析数据

  4、 存储数据

      

2、 传输协议

  TCP(transfer control protocol):一种面向连接的、可靠的、基于字节流的运输层通信协议。(三次握手)(例如:打电话;应用:HTTP、FTP)

  特点

          面向连接、

    点到点的通信、

    高可靠性、

    占用系统资源多、效率低

 

  UDP(User DatagramProtocol):一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。(例如:写信;应用:DNS<域名解析>、SNMP)

  特点

          非面向连接,传输不可靠,可能丢失数据、

          发送不管对方是否准备好,接收方收到也不确认、

          可以广播发送、

    非常简单的协议,开销小

       

  套接字Socket:应用层(网络应用程序)与传输层(TCP/UDP)连接

 

  Socket编程:

               基于TCP协议的Socket编程        基于UDP协议的Socket编程

                     通信双方需要建立连接             通信双发不需要建立连接

               连接建立时双方存在主次之分             通信双方完全平等

 

  基于UDP编程:

  DatagramSocket:用于发送或接收数据包的套接字

  DatagramPacket:数据包

 

  接收端:

   1、使用DatagramSocket指定端口 创建接收端

           2、准备容器 封装成DatagramPacket包裹         

   3、阻塞式接收包裹receive(DatagramPacket p)

   4、分析数据

           byte[] getData()

                   getLength()

  5、释放资源

       

        客户端:

    1、使用DatagramSocket指定端口 创建接收端

            2、准备数据 一定转成字节数组

    3、封装成DatagramPacket包裹,需要指定目的地

    4、发送包裹send(DatagramPacket p) *

    5、释放资源

        

  TCP编程

    基于请求响应模式,通过IO流实现数据的传输。

 

    服务器创建ServerSocket,在指定端口监听并处理请求

    客户端创建Socket,向服务器发送请求。

 

  创建服务器:

    1、 指定端口 使用ServerSocket创建服务器

    2、 阻塞式等待连接accept

    3、 操作:输入输出流操作

    4、 释放资源

 

  创建客户端:

    1、 建立连接:使用Socket创建客户端+服务的地址和端口

    2、 操作:输入输出操作

    3、 释放资源

posted @ 2021-05-18 14:47  禾野牧村  阅读(286)  评论(0)    收藏  举报