当前位置:首页 > 综合资讯 > 正文
黑狐家游戏

java获取服务器ip和端口号,Java环境下获取服务器IP地址与端口号的详细教程及实践案例

java获取服务器ip和端口号,Java环境下获取服务器IP地址与端口号的详细教程及实践案例

Java环境下获取服务器IP地址与端口号,本文提供详细教程和实践案例,包括使用InetAddress类获取IP,通过ServerSocket获取端口号,并通过示例代码演...

Java环境下获取服务器IP地址与端口号,本文提供详细教程和实践案例,包括使用InetAddress类获取IP,通过ServerSocket获取端口号,并通过示例代码演示如何实现。

在Java编程中,我们经常会遇到需要获取服务器IP地址和端口号的场景,在搭建Web服务器、实现网络通信、进行远程调用等情况下,了解服务器IP地址和端口号是至关重要的,本文将详细介绍Java获取服务器IP地址与端口号的方法,并附带实际案例,帮助读者轻松掌握这一技能。

Java获取服务器IP地址的方法

使用InetAddress类

Java提供了InetAddress类来获取IP地址,以下是一个示例代码,展示如何使用InetAddress获取本地服务器的IP地址:

java获取服务器ip和端口号,Java环境下获取服务器IP地址与端口号的详细教程及实践案例

图片来源于网络,如有侵权联系删除

import java.net.InetAddress;
public class GetServerIp {
    public static void main(String[] args) {
        try {
            InetAddress localHost = InetAddress.getLocalHost();
            String ip = localHost.getHostAddress();
            System.out.println("本地服务器IP地址:" + ip);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

使用NetworkInterface类

除了InetAddress类,Java还提供了NetworkInterface类来获取网络接口信息,以下是一个示例代码,展示如何使用NetworkInterface获取指定网络接口的IP地址:

import java.net.InetAddress;
import java.net.NetworkInterface;
import java.util.Enumeration;
public class GetServerIp {
    public static void main(String[] args) {
        try {
            Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
            while (interfaces.hasMoreElements()) {
                NetworkInterface networkInterface = interfaces.nextElement();
                Enumeration<InetAddress> addresses = networkInterface.getInetAddresses();
                while (addresses.hasMoreElements()) {
                    InetAddress address = addresses.nextElement();
                    if (!address.isLoopbackAddress() && address.getHostAddress().contains(".")) {
                        System.out.println("网络接口:" + networkInterface.getName());
                        System.out.println("IP地址:" + address.getHostAddress());
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Java获取服务器端口号的方法

使用ServerSocket类

ServerSocket类是Java提供的一个用于创建服务器端Socket的类,以下是一个示例代码,展示如何使用ServerSocket获取服务器端口号:

import java.net.ServerSocket;
public class GetServerPort {
    public static void main(String[] args) {
        try {
            ServerSocket serverSocket = new ServerSocket(8080);
            int port = serverSocket.getLocalPort();
            System.out.println("服务器端口号:" + port);
            serverSocket.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

使用Socket类

java获取服务器ip和端口号,Java环境下获取服务器IP地址与端口号的详细教程及实践案例

图片来源于网络,如有侵权联系删除

Socket类是Java提供的一个用于客户端和服务器端进行网络通信的类,以下是一个示例代码,展示如何使用Socket获取服务器端口号:

import java.net.Socket;
public class GetServerPort {
    public static void main(String[] args) {
        try {
            Socket socket = new Socket("localhost", 8080);
            int port = socket.getPort();
            System.out.println("服务器端口号:" + port);
            socket.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

实践案例

以下是一个简单的Web服务器示例,展示如何使用Java获取服务器IP地址和端口号:

import java.io.*;
import java.net.*;
public class SimpleWebServer {
    public static void main(String[] args) {
        try {
            ServerSocket serverSocket = new ServerSocket(8080);
            System.out.println("服务器启动,监听端口:" + serverSocket.getLocalPort());
            while (true) {
                Socket socket = serverSocket.accept();
                System.out.println("连接建立,客户端IP:" + socket.getInetAddress().getHostAddress());
                System.out.println("客户端端口号:" + socket.getPort());
                BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                String line = reader.readLine();
                if (line == null) {
                    break;
                }
                System.out.println("客户端请求:" + line);
                PrintWriter writer = new PrintWriter(socket.getOutputStream(), true);
                writer.println("HTTP/1.1 200 OK");
                writer.println("Content-Type: text/html");
                writer.println();
                writer.println("<html><body><h1>你好,世界!</h1></body></html>");
                writer.close();
                reader.close();
                socket.close();
            }
            serverSocket.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

在上述代码中,我们使用ServerSocket创建了一个监听8080端口的Web服务器,每当有客户端连接到服务器时,服务器会打印出客户端的IP地址和端口号,并返回一个简单的HTML页面。

本文详细介绍了Java获取服务器IP地址和端口号的方法,并通过实际案例展示了如何实现,掌握这些技能,可以帮助我们在Java编程中更好地处理网络通信任务,希望本文对您有所帮助!

黑狐家游戏

发表评论

最新文章