以下のコードに問題があります。イン/アウトの変数をどのように初期化できるかは不明です。ストリームの入出力のためのjava初期化変数
このオブジェクトの作成時に、コンストラクタ内でプログラムがハングします。それはthis.inObjects = new ObjectIn.........
の行にハングアップします。それらのメソッドを呼び出すだけで入出力の文字列やオブジェクトを読み書きするために、一度だけそれらの入出力オブジェクトを作成したいと思います。
どこが間違っていますか?データを受信しないことでハングアップする可能性はありますか?彼らはそうしてはいけませんね。そうでなければ、それは常にブロック
this.outObjects = new ObjectOutputStream(this.clientSocket.getOutputStream());
this.inObjects = new ObjectInputStream(this.clientSocket.getInputStream());
いくつかのヘッダのOISを待つのコンストラクタは、最初に送信しなければならない:
public class PokerClient
{
private PokerClientGui gui;
private Socket clientSocket;
private DataInputStream in;
private DataOutputStream output;
private ObjectInputStream inObjects;
private ObjectOutputStream outObjects;
private Hand hand;
//constructor
public PokerClient()
{
try
{
this.gui= gui;
this.clientSocket = new Socket("localhost", 4444);
this.in = new DataInputStream(this.clientSocket.getInputStream());
this.inObjects = new ObjectInputStream(this.clientSocket.getInputStream());
this.output = new DataOutputStream(this.clientSocket.getOutputStream());
this.outObjects = new ObjectOutputStream(this.clientSocket.getOutputStream());
}
catch (Exception e)
{
}
}
thx! (現場の自動割り当てには申し訳ありません)私はこれをtomorrrowしよう! – Mikeel