网络编程

网络分类

  • 局域网(0-10km,通过网络设备有线连接)
  • 城域网(0-100km,交通信号,视频监控)
  • 广域网(因特网:互联网)

网络协议

网络协议分为两种:

  • TCP/IP协议:传输控制协议/ip协议
  • UDP协议:用户数据报协议

网咯模式:

  • OSI7层模型
    在这里插入图片描述

IP与端口

IP

主机通信间的唯一标识,有IPV4,IPV6两种构成方式,且ip地址不能重复,一旦重复就会出现ip冲突

端口

主机中应用程序对外沟通的唯一标识;ip是主机的标识,端口是应用的标识,只能提供准确的ip号和端口号才能准确的找到主机上的应用。

域名

域名是对ip地址的简化记忆一种名称。

InetAddress类

InetAddress是位于java.net包中提供的用于标识ip地址和主机的类

  • getLocalhost() 获取本地主机
  • getByName() 根据提供的主机名或者ip获取InetAddress对象
  • getHostAddress() 获取主机地址
  • getHostName() 获取主机名称
public class InetAddressDemo {

    public static void main(String[] args) throws UnknownHostException {

        InetAddress ip = InetAddress.getLocalHost();
        System.out.println(ip);
        //根据主机名称获取包含了该主机的名称和地址的对象
        System.out.println(InetAddress.getByName("DESKTOP-UM5AJP5"));
        System.out.println(InetAddress.getByName("192.168.7.194"));

        //获取InetAddress对象表示的ip地址
        String addr = ip.getHostAddress();
        System.out.println(addr);
        String name = ip.getHostName();
        System.out.println(name);

        System.out.println(ip.getCanonicalHostName());
        System.out.println(InetAddress.getLoopbackAddress());

        byte[] byt = ip.getAddress();
        for (byte b : byt) {
            //-128 127  192/168
            System.out.println(b);
        }
    }

}

基于TCP/IP的Socket通信

此通信方法就是由ip地址跟端口号结合,通过Socket对象可实现两台主机之间的通信:Socket分为服务端Socket(java.net.ServerSocket),以及客户端Socket(java.net.Socket)。
其必须存在客户端与服务端的概念。

基于UDP通信

UDP协议是一种面向数据报的通信协议,不需要建立稳定的连接,即与把数据打包发给你,不管你收不收到,收到之后数据是否完整。DatagramSocket是UDP协议通信中的套接字,如需实现通道通信另需一个辅助类DatagramPacket

TCP/IP与UDP的区别

TCP/IP是一种基于稳定连接的协议,即用户之间通过服务器实现稳定连接来实现信息交互,但效率较慢
UDP是一种面向数据报的通信协议,用数据报来实现信息交互,对于数据的正确性不保证,但效率较快
在直播,在线视频等方面UDP传输效率还是远高于TDP/IP的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值