求助 关于 Socket 的一点小问题
写了个简单的 客户端发送信息到服务端, 服务端收到后回一信息到客户端 , 可是运行后怎么就卡着不动了?? 求指点这是服务端的代码
程序代码:
import *; import *; public class TServerSocket{ public static void main(String args[]) throws Exception{ BufferedReader br = null; //建立输入管道 OutputStreamWriter osw = null; // 建立输出管道 ServerSocket ss = new ServerSocket(6678); String s1 = null; while (true){ Socket s = ss.accept(); System.out.println("is connect"); br = new BufferedReader(new InputStreamReader(s.getInputStream() ) ); osw = new OutputStreamWriter(s.getOutputStream() ); System.out.println(br.readLine() ); // 读取客户端的信息 try { osw.write("hihi"); // 写信息到客户端 osw.flush(); osw.close(); } catch (IOException ie){ ie.printStackTrace(); } br.close(); s.close(); } } }
这是 客户端的代码
程序代码:
import *; import *; public class TSocket{ public static void main(String args[]) throws Exception{ OutputStreamWriter osw = null; BufferedReader br = null; Socket s = new Socket("127.0.0.1",6678); osw = new OutputStreamWriter(s.getOutputStream() ); // 建立输出管道 br = new BufferedReader(new InputStreamReader(s.getInputStream() ) ); //建立输入管道 osw.write("hello"); osw.flush(); // 我把osw.close(); 放这 服务端可以打印出hello , 但此时 客户端就出现 socket closed 这样的异常 什么意思? try { System.out.println(br.readLine() ); System.out.println("测试是否接收到服务端信息" ); } catch (IOException ie){ ie.printStackTrace(); } osw.close(); br.close(); s.close(); } }
[ 本帖最后由 灵想 于 2013-9-18 10:32 编辑 ]