作者Leeng (老千)
看板java
標題Fw: [問題] socket能不能設send timeout
時間Sun Jan 1 21:38:45 2012
這是android sdk的問題,
我不曉得java會不會遇到相同的問題,所以轉來請教
若違反板規請告知,謝謝
※ [本文轉錄自 AndroidDev 看板 #1F05tDZb ]
作者: Leeng (老千) 看板: AndroidDev
標題: [問題] socket能不能設send timeout
時間: Sun Jan 1 21:21:15 2012
setSoTimeout只能設read的阻塞時間
可是我的client端,僵在outputStream.write
--為了製造訊號差到斷線,我在傳檔傳到一半時關閉無線網路
結果就是卡在write,有辦法更改timeout嗎?
順帶一提,我21:06讓他斷線,現在才拋出exception
也就是說timeout居然要15分鐘 = =
※ 編輯: Leeng 來自: 140.112.217.29 (01/01 21:23)
※ 編輯: Leeng 來自: 140.112.217.29 (01/01 21:39)
1F:推 LaPass:我切斷連線的話會馬上斷線說..... 01/01 23:01
請問是切斷何者的連線?app還是server?
另外我之前的實驗是,強制關閉app,server的recv會馬上回傳-1;
但是手機斷網,server會被block(除非有設rcv_timeout)
而手機這邊則是僵在那...
※ 編輯: Leeng 來自: 140.112.217.29 (01/01 23:30)
2F:推 LaPass:我想起來了,我當初有寫個執行緒每秒檢查socket、 01/01 23:37
3F:→ LaPass:outputStream、inputStream 的狀態,如果一出問題,就自動 01/01 23:38
4F:→ LaPass:把socket徹底關乾淨,再次new socket連線.... 01/01 23:40
對...我現在已經改成差不多這樣了
每秒檢查傳輸進度有無成長 不曉得這麼做有沒有風險
※ 編輯: Leeng 來自: 140.112.217.29 (01/02 00:18)
5F:→ gameking:每秒檢查當然有風險 就是比較耗電而且卡效能 01/02 19:03