关于socket编程 客户端不能接受服务端信息问题

private void send() {
try {
tvGetContent.append("我说:" + etSendContent.getText().toString()
+ "\n");
writer.write(etSendContent.getText().toString() + "\n");
writer.flush();
etSendContent.setText("");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

private void connect() {

    new AsyncTask<Void, String, Void>() {

        @Override
        protected Void doInBackground(Void... params) {
            String line;
            try {
                socket = new Socket(etSendIp.getText().toString(), 12345);

                writer = new BufferedWriter(new OutputStreamWriter(
                        socket.getOutputStream()));
                reader = new BufferedReader(new InputStreamReader(
                        socket.getInputStream()));
                publishProgress("success");

                while ((line = reader.readLine()) != null) {
                    publishProgress(line);
                }
                reader.close();

            } catch (UnknownHostException e) {
                Toast.makeText(MainActivity.this, "无法建立链接",
                        Toast.LENGTH_SHORT).show();
            } catch (IOException e) {
                Toast.makeText(MainActivity.this, "无法建立链接",
                        Toast.LENGTH_SHORT).show();
            }
            return null;

        }

        @Override
        protected void onProgressUpdate(String... values) {

            if (values[0] == "success") {
                Toast.makeText(MainActivity.this, "链接建立成功",
                        Toast.LENGTH_SHORT).show();
            }
            tvGetContent.append("别人说:" + values[0] + "\n");
            super.onProgressUpdate(values);
        }

    }.execute();

}
主要问题是;客户端与客户端不能通讯,客户端发送消息到服务器,服务器是能结束消息的,同时服务器也能正确的发送消息出来,但是客户端却接收不到消息。当手动关闭服务器的时候,客户端则会一次性把前面发送的消息全部接收到。
这是我客户端发送消息和接受消息的代码  服务器短的代码应该没有问题,求各位大神指点一下

服务器端收到请求后立即回复“success”了吗?断点调试下客户端的代码走到哪一步了?是不是读取回复代码有问题呢。