【java】InetAddress类和socket

234 阅读1分钟

InetAddress类

常用方法

  • getLocalHost() 获取本机InetAddress对象
  • getByName("www.hsp.com") 根据指定主机名/域名获取InetAddress对象
  • getHostName() 获取InetAddress对象的主机名
  • getHostAddress()获取InetAddress对象的地址(ip)
import java.net.InetAddress;
import java.net.UnknownHostException;

public class ComHspeduApi {
    public static void main(String[] args) throws UnknownHostException{
        InetAddress localHost = InetAddress.getLocalHost();
        System.out.println(localHost);

        InetAddress host01 = InetAddress.getByName("www.baidu.com");
        System.out.println(host01);

        String name = host01.getHostName();
        System.out.println(name);

        String address = host01.getHostAddress();
        System.out.println(address);
    }
}

控制台输出:

Socket

  1. socket是数据通道的两端,通信的两台机器都要有socket,网络通信其实就是socket间的通信。

  2. 当需要通信时,socket允许程序把网络连接当作一个流,数据在两个socket之间通过IO传输;通过socket.getInputStream()socket.getOutputStream()进行数据读写

  3. 一般主动发起连接的应用程序为客户端,接收连接请求、监听的为服务端
    客户端和服务器端一般是不同电脑上。

image.png

两种编程方式

  • TCP编程:可靠
  • UDP编程:不可靠