当前位置: 代码迷 >> Android >> socket发数据后,立即close,导致数据未发送
  详细解决方案

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

热度:43   发布时间:2016-04-28 07:34:36.0
求助: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,这样就不会有这个问题了。
  相关解决方案