Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 异步套接字客户端_Java_Android_Sockets_Asynchronous - Fatal编程技术网

Java 异步套接字客户端

Java 异步套接字客户端,java,android,sockets,asynchronous,Java,Android,Sockets,Asynchronous,我正在开发一个基于线程的异步套接字客户端。当程序调用readLine时,它会无限期地阻塞,并且永远不会返回 public class ADNClient { Socket socket = null; DataOutputStream dataOutputStream = null; DataInputStream dataInputStream = null; Thread listener = new Thread(new Runnable() { @Overri

我正在开发一个基于线程的异步套接字客户端。当程序调用readLine时,它会无限期地阻塞,并且永远不会返回

public class ADNClient {

  Socket socket = null;
  DataOutputStream dataOutputStream = null;
  DataInputStream dataInputStream = null;

  Thread listener = new Thread(new Runnable() {
    @Override
    public void run() {
      String line;
      try {
        // Stop here and doesn't progress
        while ((line = dataInputStream.readLine()) != null) {
          //DO something
        }
      } 
      catch (IOException e) {}
    });

    public ADNClient() {
    try {
      socket = new Socket("192.168.1.5", 5000);
      dataOutputStream = new DataOutputStream(socket.getOutputStream());
      dataInputStream = new DataInputStream(socket.getInputStream());
      listener.start();
      //sender.start();
    } catch (Exception e) {
      Log.e("ADN", e.getMessage());
    }
  }

  public void close() {
    listener.stop();
    try {
      socket.close();
    } catch (IOException e) {
      Log.e("ADN", e.getMessage());
    }
  }
}

好的。。。我是输入/输出流的noob。。。我没有发送换行符,接收信息的正确方法是使用

readUTF()
而不是

readLine() 

谢谢格雷格·科普夫

您正在向客户端发送哪些数据?是否以换行符结尾?