网络通信day1(IP地址,端口号,网络通信协议,InetAddress类,Socket类)

52 阅读2分钟

day 28 2025.4.29

通信要素

  1. IP地址

    1. 作用
      IP地址用来定位网络上的计算机
    2. IP地址的分类
      Ipv4(4字节)
      Ipv6(16字节)

      公网地址(联网使用) 私网地址(局域网使用,192.168开头)

    3. 本地回环地址
      172.0.0.1
    4. 域名
      便捷的记录ip地址
  2. 端口号

    1. 作用
      唯一标识主机中的进程
    2. 范围
      0-65535
    3. 常见端口号
      HTTP(80),FTP(21),MySQL(3306)
  3. 网络传输协议

    1. 目的
      为了实现可靠而高效的数据传输
    2. 网络参考模型
      OSI参考模型(七层)
      TCP/IP参考模型(四层)
    3. 三次握手和四次挥手

IMG_20250429_195436.jpg 4. TCP和UDP的对比 | 协议名 | 特点 | | ------------ | -------------- | | TCP(传输控制协议) | 面向连接,可靠的,效率低 | | UDP(用户数据报协议) | 面向不连接,不可靠的,效率高 | > 面向(无)连接:两台主机间(不)建立连接.
> 可靠的:数据传输中,数据不会丢失,乱序等.
> 不可靠的:数据传输中,数据可能丢失,乱序等.

  1. InetAddress类

    1. 作用
      InetAddress类的一个实例表示一个IP地址.
    2. 实例化方法
      修饰方法名作用
      static InetAddressgetByNAme(String host)返回一个指定主机InetAddress实例,host可以是域名或IP地址
      static InetAddressgetLocalHost()返回当前主机的InetAddress实例
    3. 常用方法
      方法名作用
      getHostName()获得InetAddress实例的域名或主机名或IP地址
      getHostAddress()获得InetAddress实例的IP地址
  2. Socket类

    1. 作用
      唯一表示网络上某台主机的某个进程

      Socket(套接字) = IP地址 + 端口号

    2. 如何制作一个简单的服务端和客户端通信
      1. 客户端
        1. 创建Socket类
        2. 发送数据(通过Socket获得输出流)
        3. 关闭Socket和流等
      2. 服务端
        1. 创建ServerSocket
        2. 调用accept(),接受客户端Socket
        3. 接受数据(通过Socket获得输入流)
        4. 关闭Socket,ServerSocket和流等
  3. 其他

    1. 输入流的read()方法读到文件尾会返回什么?

      方法读到文件尾返回值
      BufferedReader.readLine()null
      ObjectInputStream.readObject()报EOFException异常
      其他read()-1