0

TCPソケット接続を使用しています。サーバーはオブジェクトでデータを送信し、それを受信して​​読み取る必要があります。サーバーはこのようにデータを送信します

public class SymbolData
{
public string Symbol { get; set; }
public double AskPrice { get; set; }
public double BidPrice { get; set; }
public double Open { get; set; }
public double High { get; set; }
public double Low { get; set; }
public double Close { get; set; }
public double PerChange { get; set; }
public double NetChange { get; set; }
public int Volume { get; set; }
}

私のコードは以下の通りです。私は自分の流れが正しいかどうかわかりません。

public class Client implements Runnable, java.io.Serializable{

    @Override
    public void run() {
        // TODO Auto-generated method stub
        try {
            Socket s = new Socket("172.16.x.xx",xxx);

            //outgoing stream redirect to socket
            BufferedReader input = new BufferedReader(new InputStreamReader(s.getInputStream()));              
            InputStream is = new DataInputStream(s.getInputStream());
            ByteArrayOutputStream buffer = new ByteArrayOutputStream();

            int nRead;
            byte[] data = new byte[1024];
            while ((nRead = is.read(data, 0, data.length)) != -1) {
              buffer.write(data, 0, nRead);
            }

            try {
                deserialize(data);
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            buffer.flush();

           InputStreamReader(s.getInputStream()));
           s.close();


    } catch (UnknownHostException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
    } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
    }


    }

}

// バイトを非シリアル化します

public static Object deserialize(byte[] bytes) throws IOException, ClassNotFoundException {
    ByteArrayInputStream b = new ByteArrayInputStream(bytes);
    ObjectInputStream o = new ObjectInputStream(b);
    return o.readObject();
}

助けてください

4

0 に答える 0