# 什么是网络接口? > 原文: [https://docs.oracle.com/javase/tutorial/networking/nifs/definition.html](https://docs.oracle.com/javase/tutorial/networking/nifs/definition.html) *网络接口*是计算机与私有或公共网络之间的互连点。网络接口通常是网络接口卡(NIC),但不必具有物理形式。相反,网络接口可以用软件实现。例如,环回接口(IPv4 的`127.0.0.1`和 IPv6 的`:: 1` )不是物理设备,而是模拟网络接口的软件。环回接口通常用于测试环境。 [`java.net.NetworkInterface`](https://docs.oracle.com/javase/8/docs/api/java/net/NetworkInterface.html) 类表示两种类型的接口。 `NetworkInterface`对多宿主系统很有用,该系统是一个具有多个 NIC 的系统。使用`NetworkInterface`,您可以指定用于特定网络活动的 NIC。 例如,假设您的计算机具有两个已配置的 NIC,并且您希望将数据发送到服务器。你创建一个这样的套接字: ```java Socket soc = new java.net.Socket(); soc.connect(new InetSocketAddress(address, port)); ``` 为了发送数据,系统确定使用哪个接口。但是,如果您有首选项或需要指定要使用的 NIC,则可以在系统中查询相应的接口,并在要使用的接口上查找地址。创建套接字并将其绑定到该地址时,系统将使用关联的接口。例如: ```java NetworkInterface nif = NetworkInterface.getByName("bge0"); Enumeration nifAddresses = nif.getInetAddresses(); Socket soc = new java.net.Socket(); soc.bind(new InetSocketAddress(nifAddresses.nextElement(), 0)); soc.connect(new InetSocketAddress(address, port)); ``` 您还可以使用`NetworkInterface`标识要加入多播组的本地接口。例如: ```java NetworkInterface nif = NetworkInterface.getByName("bge0"); MulticastSocket ms = new MulticastSocket(); ms.joinGroup(new InetSocketAddress(hostname, port), nif); ``` 除了此处描述的两种用法之外,NetworkInterface 还可以通过许多其他方式与 Java API 一起使用。