java中處理http連線超時

2021-04-14 05:36:29 字數 846 閱讀 8173

http是無狀態的連線,不像socket可以有timeout的異常,因此在判斷超時上一直比較困擾.

這段時間做j2me的乙個小遊戲.用到了http連線,學習了論壇上說的一種方法.

"宣告乙個boolean公共變數,表明當前httpconnection是否得到伺服器回應。

你的連線線程中在連線之前置這個變數為false;

另起乙個監視執行緒,拿到那個httpconnection的連線物件,並迴圈監視這個boolean公共變數。如果指定時間內(20秒後)你的boolean公共變數還是false,那麼就主動置httpconnection=null。這樣,那邊連線線程就會丟擲異常退出來。"  -----zhengyun

寫了timer類來實現.(學習國外乙個**上的寫法)

class timer extends thread

/*** 重新計時**/

public synchronized void reset()

/*** 故意設定為超時,可以在伺服器有返回,但是錯誤返回的時候直接呼叫這個,當成超時處理**/

public synchronized void settimeout()

/**

*/public void run() catch (interruptedexception ioe)

synchronized (this) }}

}/**

* 超時時候的處理**/

public void timeout()

}在http連線線程呼叫的同是呼叫 new timer(20*1000).start();

需要重新計時時候呼叫timer.reset();

不知道大家有沒有更好的方法

java中處理http連線超時的方法

宣告乙個boolean公共變數,表明當前httpconnection是否得到伺服器回應。你的連線線程中在連線之前置這個變數為false 另起乙個監視執行緒,拿到那個httpconnection的連線物件,並迴圈監視這個boolean公共變數。如果指定時間內 20秒後 你的 boolean公共變數還是...

處理http連線超時的方法

宣告乙個boolean公共變數,表明當前httpconnection是否得到伺服器回應。你的連線線程中在連線之前置這個變數為false 另起乙個監視執行緒,拿到那個httpconnection的連線物件,並迴圈監視這個boolean公共變數。如果指定時間內 20秒後 你的boolean公共變數還是f...

tcp連線超時處理

設定connect超時很簡單,csdn上也有人提到過使用select,但卻沒有乙個令人滿意與完整的答案。偶所講的也正是select函式,此函式整合在winsock1.1中,簡單點講,作用使那些想避免在套接字呼叫過程中被鎖定的應用程式,採取一種有序的方式,同時對多個套接字進行管理 windows網路程...