• 一、网络编程的基础


    1.概念
    计算机网络:把分布在不同区域的计算机与专门的外部设备连接起来,使用通信线路相互之间连接成一个规模庞大,而且功能比较的强的网络系统,好处:不同的计算机之间可以互相传递信息,共享数据,软件等


    网络编程:在同一个网络中,实现不同机器之间的通信

    2.计算机之间实现通信的必要条件
    1>ip地址
    Internet Protocol Address,互联网协议地址,是联网设备和互联网之间的唯一标识符,在同一个网段中,ip地址是唯一的

    ip是数字型的,是一个32位的整数,为了方便记忆,通常将这个32位的整数分成4个8位的二进制,每8位用一个圆点隔开,每个8位整数转化为了0~255之间的十进制整数,例如:10.0.135.156

    a.ipv4:ip地址被分为四段
    b.ipv6:ip地址被分为六段

    ip地址分类
    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

    ip地址可以唯一的确定网络上的一个通信实体,但是一个通信实体可以有多个通信程序同时提供网络服务,还需要端口


    2>端口
    应用程序发送或者收取信息的入口
    数据的发送和接收都需要通过端口出入计算机,端口号用于唯一标识通信实体上用于网络通信的程序,同一台机器上不能两个应用程序共用一个端口,端口号的取值范围为:0~65535

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

    注意:以后在使用的时候,尽量选择较大的端口号,较小的端口被特殊渠道占用


    常用端口:
    mysql:3306
    oracle:1521
    tomcat:8080
    qq:4000


    3>通信协议
    需要通信的设备之间要实现相同的通信协议
    网络分层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

    传输层协议:TCP和UDP TCP/IP
    网络层IP协议:IPV4和IPV6.互联网协议
    应用层协议:HTTP

    a.TCP
    Transission Control Protocol,传输控制协议,基于字节流的的传输层通信协议
    特点:
    a.安全的【确保接收方可以完全正确的获取发送方发送的消息】
    b.面向连接的【数据传输之前必须要建立连接,所以在TCP需要建立连接的时间】
    c.数据传输的效率低
    d.传输的数据大小限制,一旦连接建立,双方可以按照统一的格式传输比较的大的数据


    b.UDP
    User Datagram Protocol,用户数据包协议,提供面向事务的简单的不可靠的信息传送服务
    特点:
    a.不安全【发送方所发送的数据并不一定以相同的次序到达接收方,或者接收方接收到的数据并不一定是正确的】
    b.无连接【每个数据报包中都给完成的地址信息,所以无需建立发送方和接受方之间的连接】
    c.数据传输的效率高
    d.传输数据的大小必须限定在64k以内

    c.HTTP
    是一个被动式的协议,只有客户端给服务端主动发送请求的时候,服务端才会给客户端响应

    3.InetAddress类的使用
    是对ip地址的抽取和封装【File类是对文件或者文件夹路径的抽取和封装】
    有两个子类:Inet4Address,Inet6Address

    4.URLDecoder和URLEncoder
    用于完成普通字符串和特殊字符字符串之间的转换,

  • 相关阅读:
    如何查找YUM安装的JAVA_HOME环境变量详解
    Linux下设置和查看环境变量
    jar包部署脚本
    CentOS7开启防火墙及特定端口
    nohup 命令(设置后台进程): appending output to ‘nohup.out’ 问题
    重点|183道Java面试题可以说很详细了
    JVM性能调优
    【Notepad++】notepad++主题和字体设置(非常好看舒服的)
    spring-boot-maven-plugin 安装本地jar 包
    UserAgentUtils 获取浏览器信息
  • 原文地址:https://www.cnblogs.com/lsp-lsp/p/7344448.html
Copyright © 2020-2023  润新知