Socket通信的步驟:
1.創建ServerSocket和Socket
2.打開連接到Socket的輸入/輸出流
3.按照協議對Socket進行讀/寫操作
4.關閉輸入輸出流、關閉Socket
服務器端:
1.創建ServerSocket對象,綁定監聽端口
2.通過accept()方法監聽客戶端請求
3.連接建立后,通過輸入流讀取客戶端發送的請求信息
4.通過輸出流向客戶端發送相應的信息
5.關閉相關資源
客戶端:
1.創建Socket對象,指明需要連接的服務器的地址和端口號
2.連接建立后,通過輸出流想服務器端發送請求信息
3.通過輸入流獲取服務器響應的信息
4.關閉響應資源
1.Server服務器
import java.io.*; import java.net.*; public class TestServer { public static void main(String args[]) { ServerSocket s = null; try { s = new ServerSocket(8888); //建立服務器ServerSocket } catch (IOException e) { } while (true) { try { Socket s1 = s.accept(); //通過accept()方法監聽客戶端請求 OutputStream os = s1.getOutputStream(); //輸出流 DataOutputStream dos = new DataOutputStream(os); dos.writeUTF("Hello,I am Socket! bye bye!"); //傳遞信息,一句話 dos.close(); s1.close(); } catch (IOException e) {} } } }
2.Client客戶端
import java.io.*;
import java.net.* ;
public class TestClient {
public static void main(String args[]) {
try {
Socket s1 = new Socket("127.0.0.1", 8888); //創建Socket,IP及端口號
InputStream is = s1.getInputStream(); //輸入流
DataInputStream dis = new DataInputStream(is);
System.out.println(dis.readUTF()); //打印傳輸的信息
dis.close();
s1.close();
} catch (ConnectException connExc) {
System.err.println("服務器連接失敗!");
} catch (IOException e) { }
}
}
首先運行TestServer,再運行TestClient ,就會在控制台打印出:Hello,I am Socket! bye bye!
