0

ソケットを使用して、C++ クライアントから Java サーバーに float を含む配列またはクラスを受け取る必要があります。しかし、InputStreamReader は正しくありません。どんな理由でも。より簡単な方法の提案をいただければ幸いです。ありがとう。

Java サーバー コード

public static void main(String[] args) throws IOException {
        // TODO code application logic here
         Values values=new Values();
         gui display=new gui();
         display.setVisible(true);
        ServerSocket Sock=new ServerSocket(9090);
        try{
            while(true){
                System.out.println("Waiting");
                Socket socket=Sock.accept();

                    System.out.println("Connected..");
                  InputStream ins=socket.getInputStream();
                    InputStreamReader insr= new InputStreamReader(ins);
                    BufferedReader br=new BufferedReader(insr);

                    byte[]Array=br.readLine().getBytes("UTF-8");
                   // values.SetValues(Array);


                    values.tWidth=Array[0];
                    values.waterLevel=Array[4];
                    values.camHeight=Array[8];
                    values.camViewAngleY=Array[12];
                    values.camViewAngleX=Array[16];
                    values.distFromCamBank=Array[20];
                    values.distTwoPoints=Array[24];
                    values.AvgVelocity=Array[28];
                    values.crossSecArea=Array[32];
                    values.Flow=Array[36];
                    values.camTiltAngle=Array[40];
                    values.aboveWater=Array[44];
                    System.out.println(values.tWidth);
                    System.out.println(values.waterLevel);
                    display.SetValues(values);
                    socket.close();
                }

        }
        finally{
            Sock.close();
        }


    }
}

これらの float を Values というクラスに格納しています。しかし、私が得る値はがらくたです。送信する前に C++ コードの値をチェックしていますが、問題ないようです。どこが悪いのかわからない。助けてください...!!

4

1 に答える 1