错误提示套接字已关闭...我可以发送到服务器,我可以从服务器接收好,但只要我尝试发送和接收,我总是得到‘套接字已关闭’的错误。
服务器:
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String decodedString;
while ((decodedString = in.readLine()) != null) {
System.out.println(decodedString);
}
in.close();
OutputStreamWriter osw = new OutputStreamWriter(connection.getOutputStream());
osw.write("return: "+decodedString);
osw.flush();
osw.close();客户端:
Socket c = new Socket("localhost",4040);
OutputStreamWriter osw = new OutputStreamWriter(c.getOutputStream());
osw.write("Test");
osw.flush();
osw.close();
BufferedReader in = new BufferedReader(new InputStreamReader(c.getInputStream()));
String decodedString;
while ((decodedString = in.readLine()) != null) {
System.out.println(decodedString);
}
in.close();
c.close();发布于 2013-08-10 23:09:09
这是因为当你关闭流中的一个(osw.close();)时,套接字也会被关闭。来自Socket.getOutputStream的javadoc:
链接关闭返回的{@
java.io.OutputStream OutputStream}将关闭关联的套接字。
尝试刷新这些流,但只在完成后才关闭它们。
https://stackoverflow.com/questions/18163040
复制相似问题