在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進行了簡單的網絡編程。你可以根據需要擴展這些示例,例如添加多線程以處理多個客戶端連接,或者實現更復雜的通信協議。