私はJavaで書かれたネットワークアプリに取り組んでおり、Socketsの上でObjectOutputStreamとObjectInputStreamを使用してメッセージを交換しています。私のコードは次のようになります。
送信者:
ObjectOutputStream out;
ObjectInputStream in;
try{
Socket socket=new Socket(address, port);
socket.setSoLinger(true, socketLingerTime);
out=new ObjectOutputStream(socket.getOutputStream());
out.writeObject(message);
out.flush();
out.close();
}catch (variousExceptions)...
受信者:
Object incoming;
try{
incoming=myObjectInputStream.readObject();
}catch (SocketException socketError)
{
if (socketError.getMessage().equals("Connection reset"))
{
//this is the exception I get
}
}
メッセージが正常に処理される場合もありますが、オブジェクトの代わりにマークされた例外が発生する場合もあります。フラッシュはメッセージを反対側に強制的に通過させることになっているのではありませんか?どういうわけか関数を間違って使用していますか?それとも、これは基盤となるJava / OSネットワークコードのある種のバグですか?
ありがとう!
アップデート:
私はこれについてもう少しスヌーピングを行いました、そしてそれはシステムのリソースが何かによって課税されているときにのみ起こるようです。VirtualBoxの外部で複製することはできませんでしたが、それはVirtualBoxにそもそも多くのリソースがないためである可能性があります。この質問については、さらに詳しく調べていくうちに更新していきます。