Ubuntu下Java网络编程指南

作者:技术拾光

时间:2026-07-06

浏览:86

在Ubuntu下进行Java网络编程需先安装OpenJDK11,创建项目目录与源代码文件,编写基于TCP的客户端-服务器通信示例,编译后分别启动服务器和客户端验证通信。该流程为后续扩展如多线程或UDP编程奠定基础。

文章目录

在Ubuntu下搞Java网络编程,其实没那么玄乎,核心就是那几件事:装好环境、写好代码、编译运行。下面顺着流程走一遍,把每一步说清楚。

先把JDK装好

打开终端,敲两行命令就行:

sudo apt update
sudo apt install openjdk-11-jdk

装完别忘了验证一下:

java -version

看到版本信息出来,环境就到位了。

动手搭个项目骨架

在你自己的工作目录下新建一个文件夹,比如叫 java-net-demo,然后在这个文件夹里再建个 src 子目录,用来放源代码。结构很简单,后面编译和运行都依赖这个路径。

写个TCP通信的例子

这里给一个最经典的客户端-服务器模型,帮你快速跑通流程。

服务器端(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));
                String message = reader.readLine();
                System.out.println("Received message: " + message);
                socket.close();
            }
        } catch (IOException e) {
            System.out.println("Server exception: " + e.getMessage());
            e.printStackTrace();
        }
    }
}

客户端(Client.java):连接服务器,发送一句“Hello, Server!”。

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);
            String message = "Hello, Server!";
            writer.println(message);
            System.out.println("Sent message: " + 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();
        }
    }
}

Ubuntu下Java网络编程指南

编译所有代码

回到项目根目录(也就是 java-net-demo 那一层),执行:

javac -d out src/*.java

编译成功后,out 文件夹里就会出现两个 .class 文件。

跑起来看看效果

先在一个终端里启动服务器:

java -cp out Server

然后在另一个终端里启动客户端:

java -cp out Client

如果一切正常,服务器终端会打印出收到的消息 Hello, Server!。这就是一次完整的TCP通信。

之后你想扩展功能,比如加个多线程处理多个客户端、或者改用UDP协议,都是在这个框架上修修改改的事。基础搭好,后面怎么玩都行。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›