255 - 网络编程

1、引入

【1】网络编程

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

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

255 - 网络编程_第1张图片

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

255 - 网络编程_第2张图片

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

          www.mashibing.com

          www.sina.com

          www.wanda.com

          www.bbbb.com 

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

255 - 网络编程_第3张图片

255 - 网络编程_第4张图片

【4】TCP协议:可靠的

建立连接:  三次握手 

255 - 网络编程_第5张图片

 释放连接:四次挥手 

255 - 网络编程_第6张图片

 【5】UDP协议:不可靠的

255 - 网络编程_第7张图片

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、网络通信原理 —— 套接字

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

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

255 - 网络编程_第8张图片

你可能感兴趣的:(Java基础知识,java,1024程序员节)