TestServer.java
package com.sxt.tcp; /* * 服務端 */ import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket; import javax.xml.crypto.Data; public class TestServer { public static void main(String[] args) throws IOException { System.out.println("服務端准備就緒!"); ServerSocket server = new ServerSocket(8888); //獲取客戶端的Socket! Socket accept = server.accept(); //讀 Socket獲取輸入流 InputStream inputStream = accept.getInputStream(); DataInputStream dis = new DataInputStream(inputStream); //讀出數據 String string = dis.readUTF(); System.out.println(string); //實現雙向通信 寫 輸出流 數據流 DataOutputStream dos = new DataOutputStream(accept.getOutputStream());//注意! dos.writeUTF("服務端說:我已經收到!"); accept.close(); server.close(); } }
TestClient.java
package com.sxt.tcp2; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.OutputStream; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException; /* 基於TCP協議的Socket編程 * 雙向通信 * 通過IO流傳輸數據 * */ //客戶端 public class TestClient { public static void main(String[] args) throws UnknownHostException, IOException { Socket socket = new Socket(InetAddress.getLocalHost(), 8888); OutputStream os = socket.getOutputStream();//socket獲取輸出流 //數據寫到客戶端 輸出流 數據流(4個特殊的方法) DataOutputStream dos = new DataOutputStream(os); //數據寫到服務端 dos.writeUTF("客戶端說:你好服務器!"); //接收服務端的反饋信息 讀 輸入流 DataInputStream dis = new DataInputStream(socket.getInputStream());//注意! String string = dis.readUTF(); System.out.println(string); socket.close(); } }