InetAddressSocket使用总结

来源:互联网 发布:安卓版游戏制作软件 编辑:程序博客网 时间:2024/06/08 00:17

InetAddress是java对IP地址的封装。代表互联网协议(IP)地址;InetAddress对象的获取只能通过静态方法,比如根据主机名获取主机的IP地址封装对象。

InetAddress add = InetAddress.getByName("lmb_pc");主机名:lmb_pc  IP地址:1xx.1xx.3xx.200

InetSocketAddress是SocketAddress的实现子类。见下图:

这里写图片描述

此类实现IP套接字地址(IP地址+端口号),不依赖任何协议。在使用socket来连接服务器时,最简单的方式就是直接使用IP和端口,但socket类中的connect方法并没有提供这种方式,而是使用SocketAddress类来向connect方法传递服务器IP和端口。

然而,SocketAddress只是一个抽象类,他除了有一个默认的构造方法外,其他的方法都是abstract的,因此,我们必须使用SocketAddress的子类来建立SocketAddress对象,而SocketAddress是有一个子类,就是InetSocketAddress。下图为SocketAddress的类关系图:

这里写图片描述
主要功能方法:

InetAddress address = InetAddress.getLocalHost();System.out.println("主机名:" + address.getHostName() + ";IP地址:" + address.getHostAddress());InetAddress add = InetAddress.getByName("lmb-PC");System.out.println(add.getHostAddress());

输出:
这里写图片描述

final Socket socket = new Socket();SocketAddress socketAddress = new InetSocketAddress("www.fortify.net",443);try {  socket.connect(socketAddress);} catch (IOException e) {  e.printStackTrace();}//连接远程主机Thread reader = new Thread(){  public void run(){    try {          byte[] buffer = new byte[512];          InputStream stream = socket.getInputStream();          socket.getInputStream().read(buffer);    } catch (IOException e) {          e.printStackTrace();    }  }};reader.start();
0 0
原创粉丝点击