ubuntu

Ubuntu Java网络编程如何实现

小樊
45
2025-03-08 08:43:41
栏目: 编程语言
Ubuntu服务器限时活动,0元免费领! 查看>>

在Ubuntu上进行Java网络编程,你可以使用Java提供的标准库,如java.net包中的类和接口。以下是一个简单的Java网络编程示例,包括一个服务器端和一个客户端。

1. 服务器端

创建一个名为Server.java的文件,并添加以下代码:

import java.io.*;
import java.net.*;

public class Server {
    public static void main(String[] args) {
        int port = 12345;

        try (ServerSocket serverSocket = new ServerSocket(port)) {
            System.out.println("Server is listening on port " + port);

            while (true) {
                Socket socket = serverSocket.accept();
                System.out.println("New client connected");

                InputStream input = socket.getInputStream();
                BufferedReader reader = new BufferedReader(new InputStreamReader(input));

                OutputStream output = socket.getOutputStream();
                PrintWriter writer = new PrintWriter(output, true);

                String message;
                while ((message = reader.readLine()) != null) {
                    System.out.println("Received from client: " + message);
                    writer.println("Server received: " + message);
                }

                socket.close();
            }
        } catch (IOException e) {
            System.out.println("Server exception: " + e.getMessage());
            e.printStackTrace();
        }
    }
}

2. 客户端

创建一个名为Client.java的文件,并添加以下代码:

import java.io.*;
import java.net.*;

public class Client {
    public static void main(String[] args) {
        String host = "localhost";
        int port = 12345;

        try (Socket socket = new Socket(host, port)) {
            OutputStream output = socket.getOutputStream();
            PrintWriter writer = new PrintWriter(output, true);

            InputStream input = socket.getInputStream();
            BufferedReader reader = new BufferedReader(new InputStreamReader(input));

            // Send a message to the server
            writer.println("Hello, Server!");

            // Receive a response from the server
            String message = reader.readLine();
            System.out.println("Received from server: " + message);
        } catch (UnknownHostException e) {
            System.out.println("Client exception: " + e.getMessage());
            e.printStackTrace();
        } catch (IOException e) {
            System.out.println("Client exception: " + e.getMessage());
            e.printStackTrace();
        }
    }
}

3. 编译和运行

在终端中,转到包含Server.javaClient.java的目录,然后分别编译它们:

javac Server.java
javac Client.java

首先运行服务器端:

java Server

然后在另一个终端窗口中运行客户端:

java Client

你应该会看到服务器端接收到来自客户端的消息,并向客户端发送确认消息。

这只是一个简单的示例,你可以根据需要扩展它,例如添加多线程以处理多个客户端连接,或者实现更复杂的通信协议。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

相关推荐:Ubuntu中Java网络编程如何实现

0
看了该问题的人还看了