import java.util.Enumeration;
import java.net.NetworkInterface;
import java.net.InetAddress;
import java.net.Inet4Address;
import java.net.Inet6Address;
import java.net.SocketException;
import java.net.UnknownHostException;
public class InetAddressExample {
/**
* @param args
*/
public static void main(String[] args) {
try {
Enumeration<NetworkInterface> interfaceList = NetworkInterface.getNetworkInterfaces();
if (interfaceList == null) {
System.out.println("--No interface found--");
} else {
while(interfaceList.hasMoreElements()) {
NetworkInterface iface = interfaceList.nextElement();
System.out.println("Interface:" + iface.getName() + ";");
Enumeration<InetAddress> addrList = iface.getInetAddresses();
if (!addrList.hasMoreElements()) {
System.out.println("\r(No address for this interface0)");
}
while (addrList.hasMoreElements()) {
InetAddress address =addrList.nextElement();
System.out.println("\tAddress"
+ ((address instanceof Inet4Address ? "(v4)"
:(address instanceof Inet6Address ? "(v6)" : "(?)"))));
System.out.println(":" + address.getHostAddress());
}
}
}
} catch (SocketException e) {
System.out.println("Error getting network interfaces:" + e.getMessage());
}
for (String host : args) {
try {
System.out.println(host + ":");
InetAddress[] addressList = InetAddress.getAllByName(host);
for (InetAddress address : addressList) {
System.out.println("\t" + address.getHostName() + "/" + address.getHostAddress());
}
} catch(UnknownHostException e) {
System.out.println("\tUnable to find address for" + host);
}
}
}
}
分享到:
相关推荐
本章节主要讨论Java语言在网络编程和数据库编程方面的应用,包括TCP/IP协议、IP地址、InetAddress类、网络套接字、数据库连接、数据表查询、数据记录修改和插入等知识点。 Java网络编程基础: 1. TCP/IP协议:TCP/...
两个常用的构造函数是 Socket(InetAddress addr, int port) 和 Socket(String host, int port),两个构造函数都创建了一个基于Socket的连接服务器端流套接字的流套接字。对于第一个InetAddress子类对象通过addr参数...
6. **套接字(Socket)**:套接字是网络通信的基本单元,它代表了两个网络端点间的通信链路。`java.net.Socket`类用于建立TCP连接,提供双向数据传输。创建Socket对象并指定服务器的IP地址和端口号,即可建立连接。 ...
在学习这部分内容时,理解URL的构造和资源访问、掌握`InetAddress`的使用、熟悉套接字的创建与通信过程,以及了解UDP和RMI的基本概念,是至关重要的。通过编写实际的网络编程示例,可以更好地理解和应用这些知识。在...
套接字是网络通信的基础,它允许两个程序通过网络互相通信。在网络中,每个程序都有一个IP地址和一个端口号来唯一标识。 - **客户端套接字**: 客户端使用`Socket`类来建立到服务器的连接。创建一个新的套接字...
2. **Socket类型**:Java提供了三种类型的Socket:流式套接字(Stream Sockets)、数据报套接字(Datagram Sockets)和原始套接字(Raw Sockets)。选项D“网络套接字”不是一个标准的Socket类型,因此是错误的。 3...
- `DatagramSocket(int port, InetAddress localAddr)`:创建一个新的绑定到指定地址和端口的UDP套接字。 - **DatagramPacket**:封装了要发送或接收的数据。它可以通过以下几种构造方法创建: - `...
7. **其他相关概念**:除了以上提到的,Java网络编程还涉及TCP/IP协议、套接字(Socket)、服务器套接字(ServerSocket)、多线程(用于处理并发连接)等概念。 掌握这些基础知识,开发者可以构建各种基于Java的...
1. 套接字编程:Java的`java.net.Socket`和`java.net.ServerSocket`类是进行客户端-服务器通信的基础。客户端通过创建`Socket`对象连接到服务器的特定端口,而服务器则通过创建`ServerSocket`监听指定端口上的连接...
在Java编程中,网络编程是实现不同设备间通信的关键领域,它涉及到TCP/IP协议栈、套接字(Socket)和数据传输。本实验主要涵盖了两个关键知识点:Socket通信和UDP通信,以及如何利用InetAddress和URL类进行网络操作...
在Java中,可以通过java.net.Socket类的子类DatagramSocket或RawSocket(非标准API,通常需要借助于第三方库)来创建原始套接字。通过原始套接字,我们可以构建自定义的头部和负载,实现对ICMP协议的支持。 其次,...
7. **第8章实例**:可能涉及到套接字选项和网络配置,如设置超时,禁用Nagle算法,或者处理TCP/IP的滑动窗口等。 8. **第9章实例**:可能包括了网络安全方面,比如SSL/TLS加密通信。Java提供了JSSE(Java Secure ...
其中,第二种方法更为常见,因为它能够更高效地利用资源,并简化程序设计。在这种模式下,服务器端的`ServerSocket`接受客户端连接请求后,为每个连接创建一个新的线程来处理通信过程,从而实现多客户端并发通信。 ...
`Socket`类提供了许多getter和setter方法来获取和设置套接字的各种属性。 - **getter方法**:如`getInputStream()`、`getOutputStream()`、`getInetAddress()`等。 - **setter方法**:如`setSoTimeout(int timeout)...
**3.6.1 通过流套接字连接实现客户机/服务器的交互** - **示例**:简单的聊天室。 **3.6.2 可以服务于多个客户端的多线程程序** - **示例**:多客户端并发聊天室。 #### 第四章:JDBC技术 **4.1 概述** - **定义*...
1. **套接字(Socket)编程**:Java中的`java.net.Socket`和`ServerSocket`类是实现客户端-服务器模型的基础。Socket类代表网络上的一个端点,而ServerSocket则用于监听特定端口的连接请求。 2. **TCP和UDP协议**:...
获取本地IP地址的代码通常会涉及到操作系统提供的网络接口,例如在Windows上使用套接字库(Winsock),在Unix/Linux系统中则可能利用`ifconfig`命令或者套接字API。在编程语言中,如Python、Java、C++等,都有相应的...
java课程ppt,第11章 Java 中的网络编程, 1. URL类 2. 读取URL中的资源 3. 显示URL资源中的HTML文件 4. 处理超链接 5. InetAddress类 6. 套接字Socket 7. 使用多线程处理套接字连接 8. UDP数据报 9. 广播数据包
- 在Java中,`java.net.Socket`类代表TCP套接字,`java.net.DatagramSocket`类代表UDP套接字。 - 创建Socket时,需要指定远程主机的IP地址和端口号,然后可以通过输入/输出流进行数据交换。 4. **TCP Socket编程*...