0

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);

デバイスはデータを正しく受信します。現在、TCP クライアントではデータを受信できませんが、上記のコードの直後に次のコードを記述します。

            int size =in.available();
                byte data1[]=new byte[size];
              //  in.read(data1);
                String str=new String(data1);
                System.out.println("Reading data:"+str);

それはデータの読み取りのみを示し、文字列にはデータがありませんまた、スレッド内のコードについて試しました

      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);



    }

スレッドでは、データの読み取りのみが表示されます。サーバーからデータを取得する方法を教えてください。また、サーバーが組み込まれていることに注意してください。サーバー コードを変更することはできません。

4

2 に答える 2

0

コード「int size =in.available();」で使用可能な()メソッドは何をしますか????????

解決策としては、 available() メソッドが 0 を返すため、データを受信できません。

于 2012-05-21T04:25:24.737 に答える