Java中的網絡編程是一個強大而復雜的功能,它允許程序通過網絡與其他計算機進行通信。以下是Java網絡編程的一些基礎知識和常見應用:
OSI七層模型:
常見網絡協議:
Socket編程:
簡單示例:
// 簡單TCP服務器
import java.io.*;
import java.net.*;
public class SimpleTCPServer {
public static void main(String[] args) {
try (ServerSocket serverSocket = new ServerSocket(12345)) {
System.out.println("服務器啟動,等待客戶端連接...");
Socket clientSocket = serverSocket.accept();
System.out.println("客戶端已連接!");
BufferedReader reader = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
String message = reader.readLine();
System.out.println("收到消息: " + message);
} catch (IOException e) {
e.printStackTrace();
}
}
}
// 簡單TCP客戶端
import java.io.*;
import java.net.*;
public class SimpleTCPClient {
public static void main(String[] args) {
try (Socket socket = new Socket("localhost", 12345);
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()))) {
out.println("Hello, Server!");
System.out.println("收到服務器響應: " + in.readLine());
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.*;
import java.net.*;
public class MultiThreadServer {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(12345);
System.out.println("多線程服務器已啟動...");
while (true) {
Socket socket = serverSocket.accept();
new ClientHandler(socket).start();
}
}
}
class ClientHandler extends Thread {
private Socket socket;
public ClientHandler(Socket socket) {
this.socket = socket;
}
public void run() {
try {
handleClient();
} catch (IOException e) {
e.printStackTrace();
}
}
private void handleClient() throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println("客戶端: " + inputLine);
out.println("Echo: " + inputLine);
}
}
}
java.nio
包實現非阻塞I/O操作。通過這些基礎知識和示例,你可以開始進行Java網絡編程,并逐步掌握更復雜的應用技巧。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。