Java Socket为什么服务器无法回复客户端
我想写代码让客户端发送一个字符串给Server,Server打印字符串并回复一个字符串,然后Client打印字符串Server reply。
我的服务器
public class Server {public static void main(String[] args) throws IOException { ServerSocket ss = null; Socket s = null; try { ss = new ServerSocket(34000); s = ss.accept(); BufferedReader in = new BufferedReader(new InputStreamReader( s.getInputStream())); OutputStreamWriter out = new OutputStreamWriter(s.getOutputStream()); while (true) { String string = in.readLine(); if (string != null) { System.out.println("br: " + string); if (string.equals("end")) { out.write("to end"); out.flush(); out.close(); System.out.println("end"); // break; } } } } catch (IOException e) { e.printStackTrace(); } finally { s.close(); ss.close(); }}}
我的客户:
public class Client {public static void main(String[] args) { Socket socket =null; try { socket = new Socket("localhost", 34000); BufferedReader in =new BufferedReader(new InputStreamReader(socket.getInputStream())); OutputStreamWriter out = new OutputStreamWriter(socket.getOutputStream()); String string = ""; string = "end"; out.write(string); out.flush(); while(true){ String string2 = in.readLine(); if(string2.equals("to end")){ System.out.println("yes sir"); break; } } } catch (Exception e) { e.printStackTrace(); }finally{ try { System.out.println("closed client"); socket.close(); } catch (IOException e) { e.printStackTrace(); } }}}
有什么事吗?如果我在客户端类中删除代码“while(true)...”,那就没问题。
慕神8447489
相关分类