文档

Java™教程
隐藏目录
什么是网络接口?
教程:自定义网络
课程:编程访问网络参数

什么是网络接口?

一个网络接口是计算机与私有或公共网络之间的连接点。网络接口通常是网络接口卡(NIC),但不一定要有物理形式。相反,网络接口可以在软件中实现。例如,回环接口(127.0.0.1用于IPv4和::1用于IPv6)不是物理设备,而是一个模拟网络接口的软件。回环接口通常在测试环境中使用。

java.net.NetworkInterface类表示这两种类型的接口。

NetworkInterface对于多宿主系统非常有用,多宿主系统是指具有多个NIC的系统。使用NetworkInterface,您可以指定用于特定网络活动的NIC。

例如,假设您有一台配置了两个NIC的机器,并且您想要向服务器发送数据。您可以像这样创建一个socket:

Socket soc = new java.net.Socket();
soc.connect(new InetSocketAddress(address, port));

发送数据时,系统确定使用哪个接口。但是,如果您有偏好或需要指定使用哪个NIC,您可以查询系统以获取适当的接口,并找到要使用的接口上的地址。当您创建并绑定到该地址的socket时,系统将使用相关的接口。例如:

NetworkInterface nif = NetworkInterface.getByName("bge0");
Enumeration<InetAddress> nifAddresses = nif.getInetAddresses();

Socket soc = new java.net.Socket();
soc.bind(new InetSocketAddress(nifAddresses.nextElement(), 0));
soc.connect(new InetSocketAddress(address, port));

您还可以使用NetworkInterface来标识要加入多播组的本地接口。例如:

NetworkInterface nif = NetworkInterface.getByName("bge0");
MulticastSocket ms = new MulticastSocket();
ms.joinGroup(new InetSocketAddress(hostname, port), nif);

NetworkInterface可以在许多其他方式中与Java API一起使用,超出了此处描述的两种用途。


上一页: 对网络参数进行编程访问
下一页: 检索网络接口