在Linux上进行Java网络编程,你需要使用Java的网络库,主要是java.net包中的类和接口。以下是一些基本步骤和示例,帮助你在Linux环境下进行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 request = reader.readLine();
System.out.println("Received: " + request);
String response = "Hello, client!";
writer.println(response);
socket.close();
}
} catch (IOException e) {
System.out.println("Server exception: " + e.getMessage());
e.printStackTrace();
}
}
}
public class Client {
public static void main(String[] args) {
String hostname = "localhost"; // 服务器地址
int port = 12345; // 服务器端口号
try (Socket socket = new Socket(hostname, port)) {
OutputStream output = socket.getOutputStream();
PrintWriter writer = new PrintWriter(output, true);
String request = "Hello, server!";
writer.println(request);
InputStream input = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
String response = reader.readLine();
System.out.println("Received: " + response);
} catch (UnknownHostException e) {
System.out.println("Server not found: " + e.getMessage());
} catch (IOException e) {
System.out.println("I/O error: " + e.getMessage());
}
}
}
在Linux终端中,切换到包含Java源文件的目录,然后分别编译服务器和客户端程序:
javac Server.java
javac Client.java
首先运行服务器程序:
java Server
然后运行客户端程序:
java Client
这样,你就在Linux上使用Java进行了简单的网络编程。你可以根据需要扩展这些示例,例如添加多线程以处理多个客户端连接,或者实现更复杂的通信协议。