首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BufferedReader,StreamWriter崩溃

BufferedReader,StreamWriter崩溃
EN

Stack Overflow用户
提问于 2013-08-10 22:51:23
回答 1查看 228关注 0票数 0

错误提示套接字已关闭...我可以发送到服务器,我可以从服务器接收好,但只要我尝试发送和接收,我总是得到‘套接字已关闭’的错误。

服务器:

代码语言:javascript
复制
        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();

客户端:

代码语言:javascript
复制
    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();
EN

回答 1

Stack Overflow用户

发布于 2013-08-10 23:09:09

这是因为当你关闭流中的一个(osw.close();)时,套接字也会被关闭。来自Socket.getOutputStream的javadoc:

链接关闭返回的{@

java.io.OutputStream OutputStream}将关闭关联的套接字。

尝试刷新这些流,但只在完成后才关闭它们。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18163040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档