IT技术之家

首页 > 后端

后端

255 - 网络编程_哆啦A梦的_梦

发布时间:2022-10-24 21:28:46 后端 0次 标签:java 1024程序员节
网络编程...

1、引入

【1】网络编程

????????把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息、共享硬件、软件、数据信息等资源。

????????设备之间在网络中进行数据的传输,发送/接收数据。

【2】通信两个重要的要素:IP+PORT?

域名:www.baidu.com ? ? ?------>DNS服务器解析 ----> IP地址

? ? ? ? ? www.mashibing.com

? ? ? ? ? www.sina.com

? ? ? ? ? www.wanda.com

? ? ? ? ? www.bbbb.com?

【3】设备之间进行传输的时候,必须遵照一定的规则 ---》通信协议

【4】TCP协议:可靠的

建立连接: ?三次握手?

?释放连接:四次挥手?

?【5】UDP协议:不可靠的

2、InetAddress,InetSocketAddress

前情提要:File ? ---》 ? 封装盘符一个文件?

【1】InetAddress ? ---》 封装了IP?
代码示例:

package test1_InetAddress;

import java.net.InetAddress;
import java.net.UnknownHostException;

/**
 * @Auther: zhoulz
 * @Description: test1_InetAddress
 * @version: 1.0
 */
public class Test1 {
    public static void main(String[] args) throws UnknownHostException {
        //封装IP:
        //InetAddress ia = new InetAddress();
        //不能直接创建对象,因为InetAddress()被default修饰了
        //(注:没有修饰符则默认是default—— 只能当前这个包下能使用)

        InetAddress ia = InetAddress.getByName("192.168.67.124");
        System.out.println(ia);

        InetAddress ia2 = InetAddress.getByName("localhost");//localhost指代的是本机的ip地址
        System.out.println(ia2);

        InetAddress ia3 = InetAddress.getByName("127.0.0.1");//127.0.0.1指代的是本机的ip地址
        System.out.println(ia3);

        //InetAddress ia4 =  InetAddress.getByName("dicfin");
        //System.out.println(ia4); //搜索不到dicfin,会报错显示异常

        InetAddress ia5 = InetAddress.getByName("DESKTOP-NKI3BLU");//封装计算机名
        System.out.println(ia5);

        InetAddress ia6 = InetAddress.getByName("www.mashibing.com");
        System.out.println(ia6);

        //其他方法:
        System.out.println("其他方法:");
        System.out.println(ia6.getHostName()); //获取域名
        System.out.println(ia6.getHostAddress()); // 获取IP地址
    }
}

【2】InetSocketAddress ?---》封装了IP,端口号

代码示例:

package test1_InetAddress_InetSocketAddress;

import java.net.InetAddress;
import java.net.InetSocketAddress;

/**
 * @Auther: zhoulz
 * @Description: test1_InetAddress_InetSocketAddress
 * @version: 1.0
 */
public class Test2 {
    public static void main(String[] args) {
        InetSocketAddress isa = new InetSocketAddress("192.168.67.124",8080);
        System.out.println(isa);
        System.out.println(isa.getHostName());
        System.out.println(isa.getPort());

        InetAddress ia = isa.getAddress(); //返回值是InetAddress类
        System.out.println(ia);
        System.out.println(ia.getHostName());
        System.out.println(ia.getHostAddress());
    }
}

3、网络通信原理 —— 套接字

应用层如何获取传输层的通信协议 —— 套接字

套接字的作用:就是应用层获取传输层的协议。