zoukankan      html  css  js  c++  java
  • JAVA基础知识总结:二十

    一、网络编程基础
    1.概念
    所谓计算机网络,就是把分布在不同区域的计算机与专门的外部设备使用通信线路连接成一个规模大,功能比较强的网络系统,从而使得计算机之间可以相互通信,共享资源
    所谓的网络编程,在同一个网络中不同的机器之间进行通信


    2.计算机之间进行通信的必要条件
    ip地址,端口,网络协议

    1>ip地址
    ip地址其实就是计算机在网络中的地址,是一个32位的二进制数,通常被分为4个8位二进制
    一台计算机在网络中的地址,在同一个网段内,ip地址是唯一的
    ipv4:由4个字节组成,分为四段
    ipv6:由6个字节组成,分为六段
    ip地址的分类(5类)
    A:保留给政府机构,1.0.0.1~126.255.255.254
    B:分配给中型企业,128.0.0.1~191.255.255.254
    C:分配给任何需要的个人,192.0.0.1~223.255.255.254
    D:用于组播,224 ~ 239
    E:用于实验,240~255
    127.一般指的是本机的ip,localhost

    2>端口
    数据的发送和接受都是需要通过端口出入机器的,在同一台机器上,两个不同的程序不能占用同一个端口,端口号的范围:0~65535

    a.公认端口:0~1023
    b.注册端口:1025~49151
    c.动态或私有端口:1024~65535


    3>网络协议
    需要通信的设备之间要实现相同的通信协议,才能进行相互通信
    网络分层:物理层,数据链路层 ,网络层,传输层,会话层,表示层,应用层
    传输层协议:TCPUDP
    应用层协议:HTTP(是一个被动的协议,只有客户端主动给服务端发送请求的时候,服务端才会给客户端响应)

    环信 融云

    3.InetAddress类
    在java中,使用InetAddress类来代表ip地址,是对ip地址的抽取和封装,有两个子类:Inet4Address,Inet6Address.,分别是ipv4和ipv6的抽象
    Java中涉及到网络的类基本都存在于java.net包下


    4.使用UDP实现数据的接受和发送
    UDP:是一个面向无连接的,效率高的,但是相对不安全的通信协议

    UDP传输的数据是封装到数据报包中进行的,该协议并不能保证数据能够正确的到达目的地

    涉及的类:
    Socket:实现数据的接受和发送,又被称为套接字,是两台机器之间进行通信的端口
    DatagramSocket:用来表示发送和接收数据报包的套接字,在这个类上总是启用UDP进行数据发送

    DatagramPacket:数据报包,用来将指定长度的包接收或者发送到指定主机上的指定端口号上

    5.使用TCP实现数据的接受和发送
    TCP:面向连接的,安全的,基于字节流的传输层通信协议,但是效率没有UDP高

    面向连接:需要在通信的两个机器之间建立通信

    使用经典的三次握手建立连接
    a.客户端向服务端发送一个请求
    b.服务端收到请求之后,回客户端一个响应
    c.当客户端收到服务端的响应之后,回服务端一个确认信息


    总结:使用TCP实现数据的发送和接收需要有发送方和接收方

    涉及到的类
    Socket:此类实现客户端套接字
    ServerSocket:此类实现服务器套接字

    a.客户端发送消息,服务端接收消息
    b.客户端发送消息,服务端回复消息
    c.客户端上传文件到服务端(图片)
    d.客户端从服务端下载文件(图片)

  • 相关阅读:
    ElasticSearch 清理索引
    Docker 服务接入SkyWalking
    Promethues mysql_exporter 集中式监控
    修改SVN密码自助平台
    快速排序(golang)
    ElasticSearch Xpack集群认证和elasticsearch-head配置
    Ansible一个tasks失败则终止剩余的task
    Consul安装
    最纯净的开发者技术交流社群
    Flutter中的报错:(IOS pod 版本错误) error: compiling for iOS 8.0, but module 'xxx' has a minimum deployment target of iOS 9.0
  • 原文地址:https://www.cnblogs.com/lidar/p/7743292.html
Copyright © 2011-2022 走看看