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();
}
助けてください