共計 1681 個字符,預計需要花費 5 分鐘才能閱讀完成。
在 Java 中使用 Socket 進行網(wǎng)絡(luò)通信可以分為服務端和客戶端兩部分。
服務端:
- 創(chuàng)建 ServerSocket 對象,并指定端口號。
- 調(diào)用 ServerSocket 的 accept() 方法接收客戶端連接請求,返回一個 Socket 對象。
- 使用 Socket 對象的輸入流和輸出流進行數(shù)據(jù)的讀取和寫入。
- 通信完成后,關(guān)閉 Socket 對象和 ServerSocket 對象。
示例代碼:
import java.io.*;
import java.net.*;
public class Server {public static void main(String[] args) {
try {
// 創(chuàng)建 ServerSocket 對象,并指定端口號
ServerSocket serverSocket = new ServerSocket(8888);
// 接收客戶端連接請求,返回一個 Socket 對象
Socket socket = serverSocket.accept();
// 獲取輸入流和輸出流
InputStream is = socket.getInputStream();
OutputStream os = socket.getOutputStream();
// 讀取客戶端發(fā)送的數(shù)據(jù)
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
String data = reader.readLine();
System.out.println("Client:" + data);
// 向客戶端發(fā)送數(shù)據(jù)
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os));
writer.write("Hello, client!\n");
writer.flush();
// 關(guān)閉流和 Socket 對象
reader.close();
writer.close();
is.close();
os.close();
socket.close();
serverSocket.close();} catch (IOException e) {e.printStackTrace();
}
}
}
客戶端:
- 創(chuàng)建 Socket 對象,指定服務端的 IP 地址和端口號。
- 使用 Socket 對象的輸入流和輸出流進行數(shù)據(jù)的讀取和寫入。
- 通信完成后,關(guān)閉 Socket 對象。
示例代碼:
import java.io.*;
import java.net.*;
public class Client {public static void main(String[] args) {
try {
// 創(chuàng)建 Socket 對象,指定服務端的 IP 地址和端口號
Socket socket = new Socket("127.0.0.1", 8888);
// 獲取輸入流和輸出流
InputStream is = socket.getInputStream();
OutputStream os = socket.getOutputStream();
// 向服務端發(fā)送數(shù)據(jù)
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os));
writer.write("Hello, server!\n");
writer.flush();
// 讀取服務端發(fā)送的數(shù)據(jù)
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
String data = reader.readLine();
System.out.println("Server:" + data);
// 關(guān)閉流和 Socket 對象
writer.close();
reader.close();
is.close();
os.close();
socket.close();} catch (IOException e) {e.printStackTrace();
}
}
}
以上代碼演示了一個簡單的 Socket 通信過程,在實際應用中可能需要進行異常處理、循環(huán)讀取數(shù)據(jù)等操作。
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!
正文完