android客户端套接字未接收数据

android客户端套接字未接收数据,android,tcp,Android,Tcp,我有一个不是java的tcp服务器,也是一个硬件设备,我需要发送和接收数据 我正在连接服务器并使用以下代码发送一些配置数据 this.clientSocket=new Socket("198.168.1.17",9999); this.os=new DataOutputStream(this.clientSocket.getOutputStream()); this.in=new DataInputStream(this.clientSocket

我有一个不是java的tcp服务器,也是一个硬件设备,我需要发送和接收数据

我正在连接服务器并使用以下代码发送一些配置数据

         this.clientSocket=new Socket("198.168.1.17",9999);
        this.os=new DataOutputStream(this.clientSocket.getOutputStream());
        this.in=new DataInputStream(this.clientSocket.getInputStream());
        System.out.println("Conncted");


          char data[]={0x03,0x03,0x00};
            byte b[]=new byte[data.length];
          for (int i = 0; i < b.length; i++) {
              b[i] = (byte) data[i];
             }
            try {
                os.write(b);
它只显示读取数据,而字符串没有数据 我还尝试了线程中的代码

      public void run(){
try{
    while(true){
        int size =in.available();
        byte data[]=new byte[size];
        in.read(data);
        String str=new String(data);
        System.out.println("Reading data:"+str);



    }
在线程中,它只显示读取数据, 请帮助我如何从服务器获取数据还请注意服务器是内置的,我无法更改服务器代码

可用()方法在代码“int size=in.available();”

解决方案可能是:
available()方法返回0,因此您无法接收数据。

使用此代码从套接字接收数据。在onCreate之前编写此代码

private EditText mInputMessageView;
    private Emitter.Listener onNewMessage = new Emitter.Listener() {
        @Override
        public void call(final Object... args) {
            MainActivity.this.runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    JSONObject data = (JSONObject) args[0];
                    String username;
                    String message;
                    try {
                        username = data.getString("username");
                        message = data.getString("message");
                    } catch (JSONException e) {
                        return;
                    }

                    // add the message to view
                    addMessage(username, message);
                }
            });
        }

    }; 

在.available()中返回的
是什么?您确定服务器已响应您的请求吗?好的,那个么,尽管服务器未响应,但我如何等待服务器响应?这意味着我要逐个发送命令?
private EditText mInputMessageView;
    private Emitter.Listener onNewMessage = new Emitter.Listener() {
        @Override
        public void call(final Object... args) {
            MainActivity.this.runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    JSONObject data = (JSONObject) args[0];
                    String username;
                    String message;
                    try {
                        username = data.getString("username");
                        message = data.getString("message");
                    } catch (JSONException e) {
                        return;
                    }

                    // add the message to view
                    addMessage(username, message);
                }
            });
        }

    };