socket发数据后,立即close,导致数据未发送

求助:socket发数据后,立即close,导致数据未发送// 建立socket连接SocketAddress socketAddress new Inet

求助:socket发数据后,立即close,导致数据未发送
// 建立socket连接
SocketAddress socketAddress = new InetSocketAddress(serverIp, port);
Socket socket.connect(socketAddress, 1000);

// 发送数据
String data = "test .....";
OutputStream out = socket.getOutputStream();
OutputStreamWriter writer = new OutputStreamWriter(out, "UTF-8");
writer.append(data);
writer.flush();

// 关闭socket连接
socket.shutdownInput();
socket.shutdownOutput();
socket.close();

代码大概就是这样实现的,接收方没有收到此处发送的数据。
不知道问题出在哪里,有人知道吗? socket
[解决办法]
你确认代码都走到了么,没有什么异常么,看看logcat
[解决办法]
socket只是把数据写到缓冲区,实际数据还在缓冲器没发出去吧。
你应该等对方收到你发送的数据后,给你发回一个确认,你收到这个确认以后再关闭socket,这样就不会有这个问题了。