問題タブ [objectinputstream]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
3399 参照

java - JavaObjectInputStreamがぶら下がっています

私は今本当にばかげていると感じています...基本的に私はローカルマシンでTCPを介して接続しています...そしてクライアントでイン/アウトストリームを作成しようとすると、オブジェクト入力ストリームの作成に合格しません。何が得られますか?これは2を印刷した後に停止します...例外などはありません...このクラスを使用したのはこれが初めてではないため、部分的に困惑しています。

0 投票する
3 に答える
1109 参照

android - Rect などのオブジェクトをシリアル化していないシリアル化されたクラスを保存する

アクティビティが onDestroy() を呼び出すときにシリアライズされたオブジェクトを保存しようとしていますが、ObjectOutputStream を使用してオブジェクトを書き込もうとすると、java.io.NotSerializableExeption がスローされます。

手伝ってくれませんか。ありがとう

0 投票する
1 に答える
4817 参照

java - ソケット経由でファイルを送信した後に「java.io.EOFException」を取得する

私はソケットを介して基本的な通信を実装しようとしています。今持っているものは次のとおりです。

  • サーバーはソケットでリッスンし始めます。

    /li>
  • クライアントが接続し、サーバーが別のスレッドを開始してそのクライアントで動作し、

  • オブジェクトの出力ストリームと入力ストリームの両方を開きます。

    /li>
  • クライアントは、そのストリームを介して 2 つの i Double、String、および Long を送信します (それぞれの後にフラッシュします)。

    /li>
  • サーバーは、以前に開いたストリームを介してこれらのオブジェクトを正常に受信し、

    /li>
  • そして今、「難しい部分」、

  • クライアントがファイルを送信したいので、別の出力ストリーム (オブジェクト出力ストリームではない) を開き、ファイルを送信します。

    /li>
  • サーバーはファイルを受信します (ObjectInputStream の代わりに単純な入力ストリームも使用します)。

    /li>
  • これまでのところ、すべてが正常に機能し、ファイルが受信されましたが、サーバーはそのファイルに対して時間のかかる処理を実行し、その後クライアントに結果を含む応答を送信します。

    /li>
  • クライアントは、通信全体を終了する結果を受け取ることになっています。

    /li>

残念ながら、クライアント側の最後のステップは例外で失敗します:

ファイルの送信後にサーバーの応答を待ってクライアントをブロックしたいのですが、ファイルの送信後に突然例外で終了します。単純なストリームとオブジェクト ストリームを切り替える際に何か問題があると確信しています。

それを機能させるために何を変更すればよいか誰かが知っていますか?

前もって感謝します!

0 投票する
1 に答える
904 参照

java - Java: client-server app.- WHILE on ObjectInputStream read thread

これは非常に簡単なはずですが、明らかに基本的な理解が欠けています。シンプルなクライアントサーバーアプリケーションがあります

サーバ:

クライアント:

私の質問は、両側のreceiverThreadに関するものです。ObjectInputStreamからの読み取り中に(RUN メソッドで) WHILE を使用すると、サーバーはクライアントの要求をリッスンし、それらをすべてのObjectOutputStreamに適切にディスパッチします。このWHILEIFに変更すると、データは各クライアントごとに 1 回だけサーバーから読み取られます (そして送信されます)。同じことがクライアントの WHILE/IF にも当てはまります。

私の理解では、receiverThreadを実行すると、WHILE でスレッドが何らかの形で停止し、入力ストリームからの読み取りが続行されますが、IF を使用するとスレッドが終了します (したがって、読み取りプロセスが停止します)。WHILE 条件が満たされていなくても、つまり最初は (まだクライアントが接続されていない)、receiverThreadが生きている可能性はありますか。同じことが、receiverThread が既にデータを読み取り、ストリームに何も残っていない場合にも発生します。

この基本的な問題について説明をいただければ幸いです。

よろしくマルシン

0 投票する
1 に答える
3830 参照

java - クライアント サーバー チャット プログラムの作成

オブジェクト ストリームを使用するサーバー クライアント チャット プログラムで、すべてのクライアントにメッセージを送信し、特定のクライアントにプライベート メッセージを送信するにはどうすればよいでしょうか?

接続方法のリッスンで、接続を受け入れます

次に、このクライアントをサーバーのスレッドに渡して、メッセージ交換を処理します。

私、e;

接続されたクライアントのリストを保持する方法と場所を教えてください。

キーがユーザー名とObjectOutPutStreamであるハッシュテーブルを考えました。そして、接続が受け入れられた後に送信されるオブジェクトを読み取るために、問題が発生しました。メッセージは、ユーザー名とコマンド LOGIN を与えるログイン コマンドでした。

私のコードは次のようになりました。

System.out.println("接続を待機中"); ソケット クライアント = servSocket.accept(); System.out.println("接続元: " + client.getInetAddress());

破損したストリームに関するエラーが発生したため、どれをコメントアウトしましたか?

ありがとう

クライアントからサーバーにメッセージを送信するには;

元); } }

サーバーに接続するためのクライアント コード。

0 投票する
1 に答える
6228 参照

java - getInputStream ブロック?

入力/出力ストリームを使用して、クライアントとサーバーの間でオブジェクトを渡します。サーバーでオブジェクトを送受信できますが、現在は送信のみが可能なクライアントにも同じことが必要です。だから私はクライアントに ObjectInputStream を与えました。ただし、初期化するとブロックされます!周りを検索して答えを見つけましたが、解決策はありません。

助けてください!

私はそれらを別のスレッドで使用しようとしましたが、少なくとも私にとっては同じ問題がありました:(

0 投票する
2 に答える
3073 参照

java - Java で ObjectInputStream を介してオブジェクトを送信できません

オブジェクトの出力ストリームと入力ストリームを利用するアプリを作成しています。ただし、オブジェクトを適切に送信できないため、問題があります。ストリームに書き込むと、クライアントとサーバーの両方が同じシリアル ID を持つこのクラスのまったく同じコピー (唯一の違いはパッケージ名) を持っていても、サーバーはクラスが見つからないという例外を返します。これが私のクラスです:

それは私が送信したいオブジェクトのクラスです。クライアントコードは次のとおりです。

(テスト用に書いています)

ここにサーバーコードの一部があります(はい、マルチスレッドです):

私は今かなり混乱しています。どうしてそんなことが起きているのかわからないからです。

メッセージを文字列に置き換えると、次のコードがうまくいくという私の意見で最も重要なことは何ですか。

0 投票する
1 に答える
112 参照

java - オブジェクトの出力と入力の問題、入力の最初の行のみを出力します

クラス用のチャット サーバーを作成していますが、オフライン ユーザーのログ メッセージに問題があります。データはオブジェクトとしてログファイルに追加され、ログを記録するにつれてサイズが大きくなります。メッセージを受信したユーザーとしてログインすると、送信された最初のメッセージのみが返されます。私はこれに多くの時間を費やしてきましたが、何が欠けているのかわかりません。

入力:

出力:

0 投票する
4 に答える
922 参照

java - ObjectInputStream を使用して、既存の Singleton オブジェクトを保存されたファイルのオブジェクトに置き換えるにはどうすればよいですか?

基本的な保存/開く機能を持つ Java アプリケーションを作成しています。保存する必要があるのは、Singleton であるクラスModeleImageのインスタンスだけです。私の節約は明らかに機能し、次のようになります。

今、そのファイルを ObjectInputStream で開こうとしています。シングルトン (ModeleImage) を保存したものに単純に置き換える方法があるかどうかはわかりませんが、現在は各属性をコピーして置き換えるだけです。私のオープニングは次のようになります。

また、それぞれに try/catch を配置します。問題は、属性を置き換えようとすると、開始部分が IOException をキャッチすることです。

私は何を間違っていますか?シングルトンだからですか、それとも ObjectInputStream と readObject() の仕組みを誤解していますか?