Java Socket Data仅在关闭* not *调用时发送

时间:2017-10-26 03:58:42

标签: java android sockets tcp

我在设备上使用Android工作室和端口转发端口8080在我的计算机上使用adb reverse tcp:8080 tcp:8080在端口8080上运行Android应用程序。

我正在我的机器上侦听端口8080并使用nc -kl localhost 8080打印传入的数据。

我通过它自己的线程上的Android应用程序运行下面的代码。当套接字关闭时,我只看到数据吞吐量。当然,当我尝试在同一端口上打开连接时,它会被拒绝,因为之前的连接仍处于打开状态。我究竟做错了什么?

try {
    final Socket socket = new Socket();
    socket.connect(new InetSocketAddress("localhost", 8080));

    // I've tried setting these
    // socket.setSoLinger(true, 1);
    // socket.setTcpNoDelay(true);

    socket.getOutputStream().write(new byte[]{'h', 'e', 'l', 'l', 'o'}, 0, 5);
    socket.getOutputStream().flush();

    // Data is only received when this is commented out
    // socket.close();
} catch (IOException e) {
    e.printStackTrace();
}

0 个答案:

没有答案