服務端與客服端之間用線程怎樣相互通訊
怎樣使客戶端能向服務端不停的發送一條又一條的信息呢,做一個線程,然后用一個循環
? while(true){
? ? ? PrintWriter pw =new PrintWriter(os);//將輸出流裝為打印
if(clienting!=null) { ? ? ??
pw.write(clienting);
? ? ? ? ? ?pw.flush(); }
? ? ? ?//pw.close();
}
可是這樣的話,必須要在pw.flush在后面加pw.close();可是這樣的話只能服務端只接受一條信息,為什么呢?
或者老師有什么好的方法嗎
2015-12-17
服務器端:
while(true){ BufferedReader?br?=?new?BufferedReader(new?InputStreamReader(s.getInputStream())); String?mess?=?br.readLine(); BufferedWriter?bw?=?new?BufferedWriter(new?OutputStreamWriter(s.getOutputStream())); String?str?=?"服務器接收到的信息為:>>"+mess+"\n"; bw.write(str); bw.flush(); }客戶端:
Scanner?scanner?=?new?Scanner(System.in); while(true){ System.out.println("請輸入發送消息內容:"); bw.write(scanner.nextLine()+"\n"); bw.newLine(); bw.flush(); BufferedReader?br?=?new?BufferedReader(new?InputStreamReader(s.getInputStream())); //讀取服務器返回的消息數據 System.out.println(s.getInetAddress().getLocalHost()+":"+s.getPort()+">>"+br.readLine()); }