Java BIO 服务器与客户端实现示例(二)

2015-02-02 14:44:07 · 作者: · 浏览: 45
new InputStreamReader(
? ? ? ? ? ? ? ? ? ? ? ? socket.getInputStream()));
? ? ? ? ? ? ? ? writer = new PrintWriter(socket.getOutputStream());
?
? ? ? ? ? ? ? ? writer.println("who");
? ? ? ? ? ? ? ? writer.println("what");
? ? ? ? ? ? ? ? writer.println("where");
? ? ? ? ? ? ? ? writer.println("OVER");//OVER作为操作完成暗号
? ? ? ? ? ? ? ? writer.flush();
?
? ? ? ? ? ? ? ? String answer = reader.readLine();? //没有内容会阻塞? ? ?
? ? ? ? ? ? ? ? while(! answer.equals("OVER")){? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? System.out.println(Thread.currentThread().getId() + "---Message from server:" + answer);
? ? ? ? ? ? ? ? ? ? answer = reader.readLine();
? ? ? ? ? ? ? ? }
?
? ? ? ? ? ? } catch (IOException e) {
? ? ? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? } finally {
? ? ? ? ? ? ? ? try {
? ? ? ? ? ? ? ? ? ? if (writer != null) {
? ? ? ? ? ? ? ? ? ? ? ? writer.close();
? ? ? ? ? ? ? ? ? ? }
?
? ? ? ? ? ? ? ? ? ? if (reader != null) {
? ? ? ? ? ? ? ? ? ? ? ? reader.close();
? ? ? ? ? ? ? ? ? ? }
?
? ? ? ? ? ? ? ? ? ? if (socket != null) {
? ? ? ? ? ? ? ? ? ? ? ? socket.close();
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? } catch (IOException e) {
? ? ? ? ? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
? ? ? ?
? ? }
}