2011-01-05 14 views
2

ユーザーがテキストフィールドにURLを入力し、送信ボタンをクリックしてそのページのGETリクエストを送信する単純なデスクトップアプリケーションを構築しようとしています。ソケットは、送信ボタンマウスのclicekイベントハンドラでホストに接続するが、GUIが停止する。私はタスクマネージャーからそれを閉じる必要があります。イベントハンドラでソケットを開くことができません

private void SubmitButtonMouseClicked(java.awt.event.MouseEvent evt) 
{ 

    Socket s = null; 
    String website = URLTextBox.getText(); 
    String host = "111.65.23.56"; //this could be any host 
    int port = 80; 

    try 
    { 
    System.out.println("I am opening socket"); 
    s = new Socket(host,port); **// the code stuck here :(** 
    System.out.println("socket opened"); 
    } 
    catch(IOException e){ } 

    // and the code follows...... 

} 

あなたはほぼ確実にソケットコードのための別のスレッドを作成したい、そして最も可能性の高いクラスの優れたソケットセレクタファミリを使用します.....

+0

打撃を受けたのはどういう意味ですか?サーバーにpingを実行し、その応答があるかどうか確認しましたか? – rkg

+0

ええ、確かにその応答....と私はGUIを使用しない場合同じコードが動作して...しかし、私はGUIを作成し、イベントハンドラにコードを入れて、それは私が新しいを作成させません – Bilal

+0

あなたはどういう意味ですか? 「つまらない」?コールは返さない?例外がスローされますか?他に何か? –

答えて

1

を私を助けてください。 Using a Selector to Manage Non-Blocking Sockets

+0

私はそれを試みます。ありがとう。 – Bilal

+0

スレッドを作成する方法と場所はわかりません。実際には私はネット豆に取り組んでいます。 (main関数が書かれている)HTTP_Client、(イベントハンドラで上記のことをしている)HTTP_ClientView、ans HTTP_AboutBox(このファイルが何をしているのか分からない)の3つのファイルがあります。 – Bilal

+0

ありがとうSocketChannelは私のために働いていました:) – Bilal

関連する問題