1. 程式人生 > >用 socket 通訊寫出客戶端和伺服器端的通訊 , 要求客戶傳送資料後能夠回顯相同的資料

用 socket 通訊寫出客戶端和伺服器端的通訊 , 要求客戶傳送資料後能夠回顯相同的資料

比較基礎的一個服務端客戶端互相通訊的程式

/** 
 * @author john   socket  的伺服器端,接收到資料後列印到控制檯
的資料
 *
 */

public class ServiceSocket_1 {
	public static void main(String[] args) throws Exception {
		ServerSocket ss = new ServerSocket(4001);
		Socket s = ss.accept();
		BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
		PrintStream ps = new PrintStream(s.getOutputStream());
		String temp = br.readLine();
		while (true) {
			System.out.println("客戶端:" + temp);
			
			ps.println(temp);//獲取temp中的字元流併發送給客戶端
			if (temp.equals("stop")) {
				break;
			}
			temp = br.readLine();
		}
		br.close();
		ps.close();
		ss.close();
	}
}

/** 
 * @author john  socket  客戶端和伺服器端通訊,客戶端傳送資料後接收從服務端發來的資料
 *
 */
public class ClientSocket {
public static void main(String[] args) throws Exception {
Socket s = new Socket("localhost", 4001);
PrintStream ps = new PrintStream(s.getOutputStream());
//br獲取的是控制檯輸入的字元流
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//br_service獲取的是socket中從服務端傳送過來的字元流
BufferedReader br_server = new BufferedReader(new InputStreamReader(s.getInputStream()));
String temp = br.readLine();
while (true) {
ps.println(temp);//獲取temp中的字元流併發送到服務端
temp = br_server.readLine();
System.out.println("伺服器的資訊:" + temp);
if (temp.equals("stop")) {
break;
}
temp = br.readLine();
}


s.close();
br.close();
br_server.close();
}
}