调用bufferWriter.close()后Socket关闭。可能吗?

时间:2016-05-07 15:52:43

标签: java android sockets bufferedreader bufferedwriter

我正在尝试通过手机与计算机进行通信。我正在使用socket!我想从手机上的应用程序发送命令,并收到服务器的回复。

因此,我创建了一个缓冲的写入器和一个缓冲的读取器。

不幸的是,当我关闭缓冲的编写器时,似乎套接字也被关闭(“java.net.SocketException:Socket is closed”错误)。

我不明白该怎么做。

这是客户的代码。

private String sendCommand(String c){
    try {
        Socket ss = new Socket(host, port);
        //Send
        OutputStream sOut = ss.getOutputStream();
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(sOut));
        bw.write(c);
        System.out.println("Comando: " + c + " spedito a: " + ss.getInetAddress());
        bw.close();
        //ss.close();

        //Read
        //Socket sr = new Socket(host, port);
        InputStream sIn = ss.getInputStream();
        BufferedReader br = new BufferedReader(new InputStreamReader(sIn));
        String reply = br.readLine();
        System.out.println("Risposta del server: " + reply);
        //br.close();
        ss.close();
        //return reply;
        return "stiamo lavorandoci";
    }
    catch (ConnectException connExc){
        Log.e(TAG, "Non riesco a connettermi al server.");
        Log.e(TAG, connExc.toString());
    }
    catch (IOException e){
        System.err.println("Problemi...");
        Log.e(TAG, e.toString());
    }
    catch (Exception e){
        Log.e(TAG, e.toString());
    }
    return "Errore.";
}

提前致谢,抱歉我的英语不好。

0 个答案:

没有答案