计算机网络编程

本文介绍了计算机网络的基本概念,包括其定义、网络编程的目的,重点讲解了IP地址(IPv4/IPv6)、端口的作用和分类,以及TCP和UDP两种主要通信协议的特点。通过实例演示如何使用InetAddress和InetSocketAddress进行网络编程操作。
摘要由CSDN通过智能技术生成

之前的博客带领大家学习Java SE的基础知识,今天带领大家学习计算机网络编程的知识。

1.计算机网络的概述:

  • 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。

  • 计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的(例如,传送数据或视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用。

2.网络编程的目的:

  • 传播交流信息,数据交换,通信。

3.网络通信的要素

  • 通信双方的地址:IP地址和端口号。
  • 规则:网络通信的协议
    请添加图片描述

4.IP地址

IP地址:InetAddress

  • 唯一定位一台网络上计算机

  • 127.0.0.1:本机的localhost

  • ip地址的分类

    • ipv4/ipv6

      • IPV4 192.168.100.100 , 4个字节组成(32位)。
      • IPV6 128位。8个无符号整数!
    • 公网(互联网) - 私网(局域网)

      • 根据网络的标识长度进行区分,A类为8位、B类为16位、C类为24位、D类位多播地址。
        请添加图片描述
  • 域名:记忆IP的问题!

public class TestInetAddress {
    public static void main(String[] args) {
        try {
            //查询本机地址
            InetAddress inetAddress1=InetAddress.getByName("127.0.0.1");
            System.out.println(inetAddress1);
            InetAddress inetAddress3=InetAddress.getByName("localhost");
            System.out.println(inetAddress3);
            InetAddress inetAddress4=InetAddress.getLocalHost();
            System.out.println(inetAddress4);

            //查询网站ip地址
            InetAddress inetAddress2=InetAddress.getByName("www.baidu.com");
            System.out.println(inetAddress2);


            //常用方法
            System.out.println(inetAddress2.getAddress());
            System.out.println(inetAddress2.getCanonicalHostName());
            System.out.println(inetAddress2.getHostAddress());
            System.out.println(inetAddress2.getHostName());
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
    }
}

5.端口

端口号表示计算机上的一个程序的进程;

  • 不同的进程有不同的端口号,用来区分软件!

  • 端口被规定在0~65535的范围。

  • 端口的分类

    • 公有端口:0~1023
      • HTTP:80
      • HTTPS:443
      • FTP:21
      • Telent:23
    • 程序注册端口:1024~49151,分配用户或者程序。
      • Tomcat:8080
      • MySQL:3306
      • Oracle:1521
    • 动态、私有:49152~65535
    netstat -ano #查看所有的端口
    netstat -ano |findstr "5900" # 查看指定的端口
    tasklist |findstr "8696"  # 查看指定端口的进程
    
    public class TestInetSocketAddress {
        public static void main(String[] args) {
    
            InetSocketAddress socketAddress=new InetSocketAddress("127.0.0.1",8080);
            InetSocketAddress socketAddress1=new InetSocketAddress("localhost",8080);
            System.out.println(socketAddress);
            System.out.println(socketAddress1);
    
            System.out.println(socketAddress.getAddress());
            System.out.println(socketAddress.getHostName());
            System.out.println(socketAddress.getPort());
        }
    }
    

6.通信协议

  • 网络通信协议是一种网络通用语言,为连接不同操作系统和不同硬件体系结构的互联网络引提供通信支持,是一种网络通用语言。

  • 例如,网络中一个微机用户和一个大型主机的操作员进行通信,由于这两个数据终端所用字符集不同,因此操作员所输入的命令彼此不认识。为了能进行通信,规定每个终端都要将各自字符集中的字符先变换为标准字符集的字符后,才进入网络传送,到达目的终端之后,再变换为该终端字符集的字符。因此,网络通信协议也可以理解为网络上各台计算机之间进行交流的一种语言。

  • TCP协议:打电话

    • 连接,稳定
    • 三次握手、四次挥手
    • 客户端、服务端
    • 传输完成,释放连接,效率低
  • UDP协议:发短信

    • 不连接,不稳定
    • 客户端和服务端没有明确的界限。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值