0
私は、サーバー上のサーバからのデータがシリアライズされた配列か単純な文字列かどうかをチェックする方法は?
ArrayList<String> arr=new ArrayList<String>();
をシリアル化し、クライアントにこの配列を送信する必要があります。
私はそれをシリアル化し、socket.getOutputStream()
に書き込む:
ByteArrayOutputStream bos=new ByteArrayOutputStream();
try{
ObjectOutputStream oos=new ObjectOutputStream(bos);
oos.writeObject(arr);
oos.close();
socket.getOutputStream().write(bos.toByteArray());
}catch(IOException exc)
{
System.out.println("Series erro!");
}
クライアントは、サーバー
byte[] buf=new byte[1024*100];
//данные приходные
int r=s.getInputStream().read(buf);
そして、どのようにそれは私のArrayListあるかどうかを確認してからデシリアライズするか、単に文字列からバイトを受け取りますか?
私はシリアル化された配列を送信するだけではありません。私は文字列も送る - 異なるメッセージをクライアントに送る。 –
@АртёмЦарионовこれらを 'writeObject()'ですべて書き、 'readObject()'ですべて読み込み、 'instanceof'でそれらをテストすることができます。次に何が来るのかわからない場合は、APIを混在させないでください。 – EJP