私はJavaでソケット上でバイト配列を転送するアプリケーションを書いています。ソケットからバイト配列を読み取ることができません
次のようにクライアント側でバイト配列の生成は次のとおりです。サーバー側で
String vote = br.readLine();
// the data that i now encrypt using RSA
PublicKey pubKey = readKeyFromFilepublic("alicepublic.txt");
Cipher cvote = Cipher.getInstance("RSA");
cvote.init(Cipher.ENCRYPT_MODE, pubKey);
byte[] voted = cvote.doFinal(vote.getBytes());
System.out.println(voted);
out.println(voted.length);
dos.write(voted,0,voted.length); // here i am sending the array to the server
は、私は、ファイルに書き込むことにより、暗号化と復号化のプロセスをチェックした
String clen = in.readLine(); // read the length
byte[] array = new byte[Integer.parseInt(clen)]; // create the array of that length
dist.readFully(array); // read the array
// i am unable to read the array here at all !
PrivateKey priKey = readKeyFromFileprivate("aliceprivate.txt");
Cipher vote = Cipher.getInstance("RSA");
vote.init(Cipher.DECRYPT_MODE, priKey);
byte[] voteData = vote.doFinal(array);
System.out.println(voteData);
// finally print the decrypted array
を書きますそれは適切に動作します。
私は両方の端でDataInputとDataOutputストリームを使用しています。
私のコードで何が問題なのか教えてください。
どういう例外がありますか?エラー?スタックトレース? – beny23
例外は発生せず、ソケットからバイト配列を読み取るのを待ちます。 –