83 java网络编程_3 _通信协议

本文深入解析TCP和UDP协议特性,对比其在数据传输上的差异。同时,详细介绍了IP协议及其分类,包括IPv4和IPv6的地址格式及应用范围。此外,还讲解了端口号的作用与分类,以及InetAddress类在Java中的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

83 java网络编程_3 _通信协议

TCP协议

  • TCP协议: Transmi ssion Control Protocol 传输控制协议
    • 是一种面向连接的、可靠的、基于字节流的传输层通信协议。数据大小无限制。建立连接的过程需要三次握手,断开连接的过程需要四次挥手。

UDP协议

  • UDP协议: User Datagram Protocol 用户数据报协议
  • 是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,每个包的大小64KB。(效率高)

IP协议

  • 为 TCPP协议 ,UDP协议提供服务

  • IP协议: Internet Protocol 互联网协议/网际协议

    • 负责数据从一台机器发送到另一台机器。
    • 给互联网每台设备分配一个唯一 标识(IP地址)。
  • IP地址分为两种:

    • IPV4: 4字节32位整数,并分成4段8位的二进制数,每8位之间用圆点隔开,每8位整数可以转换为一个0~255的十进制整数。

      ​ 格式: D.D.D.D例如: 255. 255. 255. 255

    • IPV6: 16字节128位整数, 并分成8段十六进制数,每16位之间用圆点隔开,每16位整数可以转换为一个0~65535的十进制数。

       格式: X.X.X.X.X.X.X.X 例如: FFFF. FFF. FFF. FFF. FFF. FFFF. FFF. FFFF
      

IPV4的应用分类

  • A类:政府机构,10.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.0.0.1~ 239. 255.255. 254

  • E类:用于实验,240.0.0.1~ 255. 255. 255. 254

  • 回环地址: 127.0.0.1, 指本机,一般用于测试使用。

  • 测试IP命令: ping D.D.D.D

  • 查看IP命令: ipconfig

port 端口号

  • 端口号:在通信实体上进行网络通讯程序的唯一 标识。(区分哪个程序发的信息)

  • 端口分类:

    • 公认端口:0~ 1023
    • 注册端口:1024~49151
    • 动态或私有端口:49152~ 65535
  • 常用端口:

    • MySql: 3306
    • Oracle:1521
    • Tomcat:8080
    • SMTP: 25
    • Web服务器: 80
    • FTP服务器:21

InetAddress类

  • 概念:表示互联网协议(IP)地址对象,封装了与该IP地址相关的所有信息,并提供获取信息的常用方法。

  • 方法:

    • public static InetAddress getLocalHost() 获得本地主机地址对象
    • public static InetAddress getByName (String host) 根据主机名称获得地址对象
    • public static InetAddress[] getAllByName (String host) 获得所有相关地址对象
    • public String getHostAddress () 获取IP地址字符串
    • public String getHostName() 获得IP地址主机名

代码:

package com.wlw.computer_network;

import java.net.InetAddress;

/**
 * InetAddress类的使用
 * (1)创建本机IP地址对象
 * (2)创建局域网IP地址对象
 * (3)创建外网IP地址对象
 */
public class InetAddressDemo {
    public static void main(String[] args) throws Exception{
        //1.创建本机IP地址对象
        //1.1
        InetAddress inetAddress = InetAddress.getLocalHost();
        System.out.println("IP地址:"+inetAddress.getHostAddress()+",主机名:"+inetAddress.getHostName());
        //1.2
        InetAddress inetAddress1 = InetAddress.getByName("192.168.1.31");
        System.out.println("IP地址:"+inetAddress1.getHostAddress()+",主机名:"+inetAddress1.getHostName());
        //1.3
        InetAddress inetAddress2 = InetAddress.getByName("127.0.0.1");
        System.out.println("IP地址:"+inetAddress2.getHostAddress()+",主机名:"+inetAddress2.getHostName());
        //1.4
        InetAddress inetAddress3 = InetAddress.getByName("localhost");
        System.out.println("IP地址:"+inetAddress3.getHostAddress()+",主机名:"+inetAddress3.getHostName());

        //2.创建局域网IP地址对象
       // InetAddress inetAddress4 = InetAddress.getByName("192.168.1.33");
       // System.out.println("IP地址:"+inetAddress4.getHostAddress()+",主机名:"+inetAddress4.getHostName());
        // System.out.println("两秒是否可达:"+inetAddress4.isReachable(2000));

        //3.创建外网IP地址对象
        InetAddress inetAddress5 = InetAddress.getByName("www.baidu.com");
        System.out.println("IP地址:"+inetAddress5.getHostAddress()+",主机名:"+inetAddress5.getHostName());
        System.out.println("两秒是否可达:"+inetAddress5.isReachable(2000));
        System.out.println("---------------------");
        InetAddress[] allByName = InetAddress.getAllByName("www.baidu.com");
        for (InetAddress address : allByName) {
            System.out.println(address.getHostAddress());
        }
    }
}

/*
执行结果:
IP地址:192.168.1.31,主机名:PC-20200703OXSP
IP地址:192.168.1.31,主机名:PC-20200703OXSP
IP地址:127.0.0.1,主机名:ieonline.microsoft.com
IP地址:127.0.0.1,主机名:localhost
IP地址:39.156.66.14,主机名:www.baidu.com
两秒是否可达:true
---------------------
39.156.66.14
39.156.66.18

*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悬浮海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值