Java 使用 Socket 實現客戶端和服務器的信息交互

服務器

public class Server{
	
	private ServerSocket serverSocket;
	private Socket socket;
	private BufferedReader in;
	private PrintWriter out;
	
	public Server() {
		try {
			//	定義連接端口
			serverSocket = new ServerSocket(10000);
			while(true) {
				//	等待客戶端連接
				socket = serverSocket.accept();
				//	獲取本機地址
				String RemoteIP = socket.getInetAddress().getHostAddress();
				//	獲取本機端口號
				String RemotePort = ":" + socket.getLocalPort();
				System.out.println("服務器:有一個用戶進來了! IP 地址爲:" + RemoteIP + RemotePort);
				in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
				//	獲取用戶輸入的內容
				String line = in.readLine();
				System.out.println("用戶:" + line);
				out = new PrintWriter(socket.getOutputStream(),true);
				out.println("服務器:已經收到消息");
				//	關閉資源
				out.close();
				in.close();
				socket.close();
			}
		}catch(IOException e) {
			out.println("wrong");
		}
	}
	
	public static void main(String[] args) {
		
		new Server();
		
	}
	
}

客戶端

public class Client{
	
	private Socket socket;
	private BufferedReader in;
	private PrintWriter out;
	
	public Client() {
		
		try {
			System.out.println("嘗試連接  127.0.0.1:10000");
			// 設置本機地址和端口號
			socket = new Socket("127.0.0.1",10000);
			System.out.println("連接成功!");
			System.out.print("請輸入你想說的話:");
			BufferedReader line = new BufferedReader(new InputStreamReader(System.in));
			out = new PrintWriter(socket.getOutputStream(),true);
			// 獲取服務器傳過來的消息
			out.println(line.readLine());
			in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
			System.out.println(in.readLine());
			//	關閉資源
			out.close();
			in.close();
			socket.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			out.println("Wrong");
		}
	}
	
	public static void main(String[] args) {
		
		new Client();
		
	}
	
}

服務器
服務器
客戶端
客戶端

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章