2011-01-05 71 views
2

我想構建一個簡單的桌面應用程序,用戶在文本字段中輸入url並單擊提交按鈕以發送該頁面的GET請求。我試圖打開一個套接字連接到提交按鈕鼠標clicek事件handeler主機但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 2011-01-05 11:13:09

+0

耶確定其響應....和相同的代碼工作,如果我不使用GUI ...但是當我做一個GUI,並把事件處理程序中的代碼它不會讓我創建新的 – Bilal 2011-01-05 11:25:41

+0

你是什麼意思通過「卡住」?調用永不返回?拋出異常?還有別的嗎? – 2011-01-05 13:58:26

回答

1

你幾乎肯定要創建的套接字代碼一個單獨的線程,而最有可能的: Using a Selector to Manage Non-Blocking Sockets

+0

我會嘗試。謝謝。 – Bilal 2011-01-05 11:16:32

+0

我不知道如何以及在哪裏做一個線程。實際上我正在研究淨豆。有三個文件,HTTP_Client(寫入主函數的地方),HTTP_ClientView(我正在做一個事件處理程序中的上述東西),ans HTTP_AboutBox(我不知道這個文件的作用) – Bilal 2011-01-05 15:18:32

+0

感謝這個SocketChannel爲我工作:) – Bilal 2011-01-07 09:09:32

相關問題