1. 程式人生 > >TCP服務端要設定超時時間

TCP服務端要設定超時時間

socket的setSoTimeOut()

因為呼叫ServerSocket類的accept()方法和Socket輸入流的read()方法時會引起執行緒阻塞,所以應該用 setSoTimeout()方法設定超時,預設的設定是0,即超時永遠不會發生。超時的判斷是累計式的,一次設定後,每次呼叫引起的阻塞時間都從該值中 扣除,直至另一次超時設定或有超時異常丟擲。比如,某種服務需要三次呼叫read(),超時設定為1分鐘,那麼如果某次服務三次read()呼叫的總時間 超過1分鐘就會有異常丟擲,如果要在同一個Socket上反覆進行這種服務,就要在每次服務之前設定一次超時。