InetAddress类和InetSocketAddress类

InetAddress类是Java对IP地址的封装,代表IP地址。

InetAddress类的对象只能通过静态方法,比如根据主机名获取主机的IP地址封装对象。

代码实现:

1.InetAddress add = InetAddress.getByName("主机名"); //通过主机名来获取主机的IP地址
  System.out.println("IP地址:"+add.getHostAddress());
2.InetAddress address = InetAddress.getLocalHost();
  System.out.println("主机名"+address.getHostName()+"IP地址"+address.getHostAddress());

主机名可以通过DNS解析获得IP地址.

InetSocketAddress类:使用Socket来连接服务器时最简单的方式就是直接使用IP地址和端口号,但是Socket类中的connect()并未提供这种方式,而是使用SocketAddress类来向connect方法来传递服务器的IP地址和端口。SocketAddress只是个抽象类,它除了有一个默认的构造方法以外,其他的方法都是abstract,因此,我们必须使SocketAddress的子类来建立SocketAddress的对象,也就是InetSocketAddress。代码实现:

final Socket socket = new Socket();                              
SocketAddress address = new InetSocketAddress("主机名","端口号");
try{                                                             
	socket.connect(address);                                       
  }catch(IOException e){                                         
		e.printStackTrace();                                         
  }                                                              
Thread reader = new Thread(){                                    
public void run(){                                               
		try{                                                         
		byte[] buffer = new byte[512];                               
		InputStream stream = socket.getInputStream();                
		stream.read(buffer);                                         
		}catch(Exception ex){                                        
			e.printStackTrace();                                       
		}                                                            
}                                                                
}.start();                                                       

关键就是InetSocketAddress不基于任何协议,一般用于Socket编程。

InetSocketAddress多了一个端口号,用来区分同一主机上的不同服务。




  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值