Java网络编程-简介

import jdk.jfr.StackTrace;
import org.junit.Test;

import java.lang.annotation.Target;
import java.net.InetAddress;
import java.net.UnknownHostException;

/**
 * 网络编程
 *
 * 一、目的:与其他计算机实现数据交换,进行通讯
 *
 * 二、网络编程中主要问题
 * 1.定位主机(IP),定位应用(端口号)
 * 2.如何进行高可靠性传输数据(网络通信协议)
 *
 * 三、网络编程中的两要素
 * 1、(1)IP:                      域名:
 *
 *   (2)端口号:(16位)标识正在计算机上运行的进程
 *              (0-1023)公认端口
 *              (1024-49151)注册端口
 *              (49152-65535)动态/私有端口
 *端口号+IP  ----> 网络套接字 Socket
 * 2、网络通信协议
 *      (1)、TCP/IP参考模型
 *          应用层
 *          传输层
 *          网络层
 *          数据链路层+物理层
 *  (2)传输层:UDP、TCP协议
 *      TCP:TCP三次握手
 *           四次挥手
 *          可靠连接
 *          两个通信应用进程:客户端、服务端
 *          可进行大数据量传输
 *          效率低
 *          //打电话
 *      UDP:不可靠连接
 *          无需建立连接
 *          数据限制64k
 *          可以广播
 *          发送数据结束无需释放资源,开销小,速度快
 *          //视频、发短信、发电报
 *
 *
 *  (3)网络层:IP协议
 *
 *
 * @author orz
 */
public class Test1 {



    //ip地址
    /**
     * 1.使用InetAddress代表IP
     * 2.IP分类:IPV6、IPV4;万维网、局域网
     * 3.域名: 如 www.baidu.com
     * 4.回路地址:127.0.0.1 localhost(本机)
     * 5.如何实例化InetAddress:两个方法:getByName(String host)
     *                               getLocalHost()
     *   两个常用方法:getHostName()
     *               getHostAddress()
     *
     */
    @Test
    public void test1()
    {
        try {
            //1.byIP地址
            InetAddress inetAddress=InetAddress.getByName("192.168.0.1");
            //2.by域名
            InetAddress inetAddress1=InetAddress.getByName("www.baidu.com");

            System.out.println(inetAddress);
            System.out.println(inetAddress1);

            //3.本地地址 InetAddress.getLocalHost()
            InetAddress inetAddress2=InetAddress.getLocalHost();
            System.out.println(inetAddress2);


            //getHostName()
            System.out.println(inetAddress1.getHostName());
            //getHostAddress()
            System.out.println(inetAddress1.getHostAddress());

        } catch (UnknownHostException e) {
            e.printStackTrace();
        }

    }

    /**
     * 端口号:标识正在计算机上运行的进程
     *
     */


    /**
     * Socket
     */
    @Test
    public void test2()
    {

    }
}

 

posted @ 2020-07-30 23:24  orz江小鱼  阅读(155)  评论(0编辑  收藏  举报