在Ubuntu系統中進行Java網絡編程,你可以使用Java標準庫中的java.net
包。這個包提供了用于開發網絡應用程序的類和接口,包括用于創建套接字的類(如Socket
和ServerSocket
)以及用于URL處理的類(如URL
和URLConnection
)。
以下是一個簡單的Java網絡編程示例,包括一個服務器端和一個客戶端。
SimpleServer.java
的文件。import java.io.*;
import java.net.*;
public class SimpleServer {
public static void main(String[] args) {
int port = 12345; // 選擇一個端口
try (ServerSocket serverSocket = new ServerSocket(port)) {
System.out.println("服務器正在監聽端口 " + port);
while (true) {
Socket socket = serverSocket.accept(); // 接受客戶端連接
System.out.println("新客戶端已連接");
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("收到客戶端消息: " + request);
String response = "你好, 客戶端!";
writer.println(response);
socket.close();
}
} catch (IOException e) {
System.out.println("服務器異常: " + e.getMessage());
e.printStackTrace();
}
}
}
SimpleClient.java
的文件。import java.io.*;
import java.net.*;
public class SimpleClient {
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 request = "你好, 服務器!";
writer.println(request);
InputStream input = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
String response = reader.readLine();
System.out.println("收到服務器消息: " + response);
} catch (UnknownHostException e) {
System.out.println("未知主機: " + e.getMessage());
e.printStackTrace();
} catch (IOException e) {
System.out.println("客戶端異常: " + e.getMessage());
e.printStackTrace();
}
}
}
SimpleServer.java
和SimpleClient.java
的目錄。javac SimpleServer.java SimpleClient.java
java SimpleServer
java SimpleClient
你應該會看到服務器和客戶端之間的簡單通信。
這只是一個基本的示例,實際的網絡應用程序可能需要處理更復雜的情況,例如多線程、異常處理、安全性等。你可以根據需要擴展這個示例,以滿足你的需求。