网络通信 三要素

网络通信 三要素_第1张图片网络通信 三要素_第2张图片

网络通信的三要元素 

  1. IP地址
  2. 端口号
  3. 协议
  4. 网络通信 三要素_第3张图片网络通信 三要素_第4张图片
    package InetAddressTest;
    
    import java.net.InetAddress;
    
    public class InetAddress1 {
        public static void main(String[] args)throws Exception {
           // InetAddress的使用
    
    
            //1:获取本机IP地址对象
           InetAddress ip1= InetAddress.getLocalHost();
            System.out.println(ip1.getHostName());
            System.out.println(ip1.getHostAddress());
    
            //2:获取指定的IP地址 或者域名的IP地址
           InetAddress ip2= InetAddress.getByName("www.baidu.com");
          // InetAddress ip2= InetAddress.getByName("www.baidu.com");
            System.out.println(ip2.getHostName());
            System.out.println(ip2.getHostAddress());
    
            //ping IP ==  www.baidu.com
            System.out.println(ip2.isReachable(6000));
    
    
        }
    }
    

    端口号

我们自己开发的程序用注册端口

网络通信 三要素_第5张图片

协议 

网络通信 三要素_第6张图片

网络通信 三要素_第7张图片

网络通信 三要素_第8张图片 网络通信 三要素_第9张图片

网络通信 三要素_第10张图片

网络通信 三要素_第11张图片网络通信 三要素_第12张图片

网络通信 三要素_第13张图片 网络通信 三要素_第14张图片

案例代码

客户端

package UDP12;


import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

/*
*    完成UDP 通信快速入门    实现发1收1*/
public class Client {
    public static void main(String[] args) throws Exception{
        // 1创建客户端对象
       DatagramSocket socket= new DatagramSocket(8888);

       //2创建数据包对象封装要发出去的数据
      /*    public DatagramPacket(byte buf[], int length,
        InetAddress address, int port)
        参数一 封装要发出去的数据
        参数二 我要发的参数大小
        参数三 服务端IP地址
        参数四 服务端端口

        */
      byte[]bytes=  "我是客户端 我是abc".getBytes();

        DatagramPacket packet =new DatagramPacket(bytes,bytes.length,
                InetAddress.getLocalHost(),6666);


        // 3:开始正式发送数据包的数据发出去
        socket.send(packet);

        System.out.println("客户端发送完毕~~");

        //释放发送
        socket.close();

    }
}

服务端

package UDP12;

      //完成UDP通信服务端

import java.net.DatagramPacket;
import java.net.DatagramSocket;

public class Server {
    public static void main(String[] args) throws Exception{
        //1创建一个服务端对象
        System.out.println("---------服务端启动---------");
       DatagramSocket socket= new DatagramSocket(6666);

       //2 创建数据对象用接收数据
        byte [] buffer=new byte[1024*64]; //1KB * 64=  64KB
        DatagramPacket packet=new DatagramPacket(buffer,buffer.length);

        //3:开始正式设用数据包接收客户端发来的数据
        socket.receive(packet);

        //4:字节数组中的数据打印出来
        //接收多少倒出多少
       int lin= packet.getLength();
        String rs=new String(buffer,0,lin);
        System.out.println(rs);


        System.out.println(packet.getAddress().getHostAddress());
        System.out.println(packet.getPort());

        //释放发送
        socket.close();


    }
}

你可能感兴趣的:(网络,服务器,运维)