Java基础——网络编程

(1)什么是网络编程?

  • 网络编程可以让程序与网络上的其他设备中的程序进行数据交互。

(2)网络通信基本模式:

  • 常见:Client-Server(CS),Browser/Server(BS)

(3)实现网络编程关键的三要素:

1.IP地址:设备在网络中的地址,是唯一的标识。

  • IP(Internet Protocol):全称“互联网协议地址”,是分配给上网设备的唯一标志。
  • 常见的IP分类:IPv4和IPv6

 

  • IP地址基本寻路

  •  IP地址形式:
    • 公网地址,和私有地址(局域网使用)。
    • 192.168.开头的就是常见的局域网地址,范围即为192.168.0.0--192.168.255.255,专门为组织机构内部使用。
  • IP常见命令:
    • ipconfig:查看本机IP地址。
    • ping IP地址:检查网络是否连通。
  • 特殊IP地址:
    • 本机IP:127.0.0.1或者localhost:称为回送地址也可称本地回环地址,只会寻找当前所在本机。

import java.net.InetAddress;
/**
    目标:InetAddress类概述(了解)
         一个该类的对象就代表一个IP地址对象。

    InetAddress类成员方法:
         static InetAddress getLocalHost()
            * 获得本地主机IP地址对象。
         static InetAddress getByName(String host)
            * 根据IP地址字符串或主机名获得对应的IP地址对象。
         String getHostName()
            * 获得主机名。
         String getHostAddress()
            * 获得IP地址字符串。
 */
public class InetAddressDemo01 {
    public static void main(String[] args) throws Exception {
        // 1.获取本机地址对象。
        InetAddress ip1 = InetAddress.getLocalHost();
        System.out.println(ip1.getHostName());//主机名
        System.out.println(ip1.getHostAddress());//IP

        // 2.获取域名ip对象
        InetAddress ip2 = InetAddress.getByName("www.baidu.com");
        System.out.println(ip2.getHostName());//主机名:www.baidu.com
        System.out.println(ip2.getHostAddress());//

        // 3.获取公网IP对象。
        InetAddress ip3 = InetAddress.getByName("112.80.248.76");
        System.out.println(ip3.getHostName());
        System.out.println(ip3.getHostAddress());

        // 4.判断是否能通: ping  5s之前测试是否可通
        System.out.println(ip3.isReachable(5000));
    }
}

2.端口:应用程序在设备中唯一的标识。

  • 端口号:标识正在计算机设备上运行的进程(程序),被规定为一个16位的二进制,范围是0~65535。
  • 端口类型:
    • 周知端口:0~1023,被预先定义的知名应用占用(如:HTTP占用80,FTP占用21)
    • 注册端口:1024~49151,分配给用户进程或某些应用程序。(如:Tomcat占用8080,MySQL占用3306)(注意:我们自己开发的程序选择注册端口,且一个设备中不能出现两个程序的端口号一样,否则出错。)
    • 动态端口:49152~65535,之所以称为动态端口,是因为它一般不固定分配某种进程,而是动态分配。

3.协议:数据在网络中传输的规则,常见的协议有UDP协议和TCP协议。

  • 通信协议:连接和通信数据规则被称为网络通信协议。
  • 网络通信协议有两套参考模型:
    • OSI参考模型:世界互联网协议标准,全球通信规范,由于此模型过于理想化,未能在因特网上广泛推广。
    • TCP/IP参考模型(或TCP/IP协议):事实上的国际标准。

  •  传输层的2个常见协议:
    • TCP(Transmission Control Protocol):传输控制协议。
    • UDP(User Datagram Protocol):用户数据报协议。
  • TCP协议特点:
    • 使用TCP协议,必须双方先建立连接,它是一种面向连接的可靠协议。
    • 传输前,采用“三次握手”方式建立连接,所以是可靠的。
    • 在连接中可进行大数据量的传输。
    • 连接,发送数据都需要确认,且传输完毕后,还需释放已建立的连接,通信效率较低。
  • TCP协议通信场景:
    • 对信息安全要求较高的场景,例如:文件下载,金融等数据通信。

  •  UDP协议:
    • UDP是一种无连接,不可靠传输的协议。
    • 将数据源IP,目的地IP和端口封装成数据包,不需要建立连接。
    • 每个数据包的大小限制在64KB内。
    • 发送不管对方是否准备好,接收方收到也不确认,故是不可靠的。
    • 可以广播发送,发送数据结束时无需释放资源,开销小,速度快。
  • UDP协议通信场景:
    • 语言通信,视频会话等。

猜你喜欢

转载自blog.csdn.net/weixin_61275790/article/details/130348143
今日推荐