導航:首頁 > 網路安全 > java如何應對網路超時

java如何應對網路超時

發布時間:2022-08-22 11:03:00

A. JAVA被禁止使用網路,MC連接超時

展開全部
關於超時時間:
java.net.HttpURLConnection是基於HTTP協議的,其底層通過socket通信實現.
如果不設置超時(timeout),在網路異常的情況下,可能會導致程序僵而不繼續往下執行.
在JDK1.5-
版本中,只能通過以下兩個語句來設置相應的超時:
System.setProperty("sun.net.client.defaultConnectTimeout",超時毫秒數字元串);
System.setProperty("sun.net.client.defaultReadTimeout",超時毫秒數字元串);
在JDK1.5+,還可以使用HttpURLConnection的父類URLConnection的以下兩個方法:
URLConnection.setConnectTimeout(int):設置連接主機超時(單位:毫秒)
URLConnection.setReadTimeout(int):設置從主機讀取數據超時(單位:毫秒)
我這里
按照上述方法設置沒有問題的哦

B. java 方法 執行超時處理

java 1.5以上的Future類可以執行超時處理。

jdk1.5自帶的並發庫中Future類中重要方法包括get()和cancel(),get()獲取數據對象,如果數據沒有載入,就會阻塞直到取到數據,而 cancel()是取消數據載入。另外一個get(timeout)操作,表示如果在timeout時間內沒有取到就失敗返回,而不再阻塞。

代碼如下:

importjava.util.concurrent.Callable;
importjava.util.concurrent.ExecutionException;
importjava.util.concurrent.ExecutorService;
importjava.util.concurrent.Executors;
importjava.util.concurrent.TimeUnit;


importcom.sun.corba.se.impl.orbutil.closure.Future;
importcom.sun.corba.se.impl.orbutil.threadpool.TimeoutException;
publicclassThreadTest{

publicstaticvoidmain(String[]args)throwsInterruptedException,
ExecutionException{

finalExecutorServiceexec=Executors.newFixedThreadPool(1);

Callable<String>call=newCallable<String>(){
publicStringcall()throwsException{
//開始執行耗時操作
Thread.sleep(1000*5);
return"線程執行完成.";
}
};

try{
Future<String>future=exec.submit(call);
Stringobj=future.get(1000*1,TimeUnit.MILLISECONDS);//任務處理超時時間設為1秒
System.out.println("任務成功返回:"+obj);
}catch(TimeoutExceptionex){
System.out.println("處理超時啦....");
ex.printStackTrace();
}catch(Exceptione){
System.out.println("處理失敗.");
e.printStackTrace();
}
//關閉線程池
exec.shutdown();
}
}

C. java後台調用外部介面超時了怎麼

java後台調用外部介面超時了,超時了就重新請求啊,一般處理是網路不好造成的,直接返回就行了、

D. java客戶端調用webservice時 連接超時知道是網路原因 ,如何重試如果不重試程序就死瑣了,

先把連接超時的時間設置長一點!
拋異常處理時,空處理異常,繼續調用連接方法,不過,伺服器一般都有連接超時的時間的,超過時間連接不上,就會自動中斷客戶端的請求。釋放資源!

E. java socket里的time_wait狀態怎麼處理有什麼有效的解決辦法嗎,謝謝!

TIME_WAIT這個狀態是TCP/IP設計時為考慮網路的可靠性所必須的,主動發起關閉連接的一方在接收到被動關閉連接方發出的FIN後就會進入TIME_WAIT狀態,這個狀態最長會持續2*MSL(Max Segment Life)時間,其作用是(1)主動方發出的ACK可能會在網路中丟失,如果丟失被動方會重新發出FIN,如果提前關閉了連接就無法接收到重發的FIN。(2)使游盪在網路中的分組在經過2*MSL超時後消失。
TIME_WAIT這個設計是為了網路可靠性的考慮,具體設定時間長短需要根據網路情況決定,超時時間Windows默認設置一般為四分鍾,也就是說主動方打開的埠最長在四分鍾內不會被釋放,導致可用埠減少。

TIME_WAIT的默認等待時間操作系統設置一般都較為保守,如果網路連接中出現大量TIME_WAIT狀態,可以考慮修改設置(1)修改操作系統配置減少TIME_WAIT時間,Windows上的設置方法是進入注冊表的HKLM->SYSTEM->CurrentControlSet->services->TcpIp->Parameters,添加一個DWORD項「TcpTimedWaitDelay」,時間可設置的短一些(比如60秒或30秒)(2)使用Socket提供的SO_LINGER選項,當SoLinger設置為0時Socket會取消關閉連接等待(不建議)。

F. java,請問怎麼對這個連接網址時,超時的異常加一個處理

1、用try{}catch(){}捕抓異常,判斷返回是否目標
2、用Thread.sleep()暫停

G. 怎麼做java超時處理方法

importjava.text.SimpleDateFormat;
importjava.util.Date;
importjava.util.concurrent.Callable;
importjava.util.concurrent.Future;
importjava.util.concurrent.FutureTask;
importjava.util.concurrent.TimeUnit;

classTest26{
publicstaticvoidmain(String[]args){
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");
System.out.println("開始:"+sdf.format(newDate()));
Future<String>future=newFutureTask<String>(newCallable<String>(){
publicStringcall()throwsException{
test();
returnnull;
}
});

try{
future.get(10,TimeUnit.SECONDS);//執行10秒結束
}catch(Exceptione){
}
System.out.println("結束:"+sdf.format(newDate()));
}

publicstaticvoidtest(){
inti=1;
while(true){
if(i==0){
break;
}
}
}
}

閱讀全文

與java如何應對網路超時相關的資料

熱點內容
刷卡時有信號但是網路不穩定 瀏覽:332
特斯拉網路信號滿卻不能上網 瀏覽:813
紹興無線網路技術服務至上 瀏覽:976
辦公室裝路由器對網路有影響嗎 瀏覽:154
三峽大學電腦網路辦理 瀏覽:104
網路安全手抄報搜狗圖片 瀏覽:34
無線網路暴雪戰網無法登錄 瀏覽:202
手機故障網路拒絕接入 瀏覽:876
計算機網路與多媒體能不能報一建 瀏覽:590
網路文學功能有哪些 瀏覽:132
計算機網路傳輸方式雙向通信 瀏覽:756
哪個機頂盒對網路要求低 瀏覽:148
鏈接公司wifi後網路慢 瀏覽:361
緬甸哪個地方用中國網路 瀏覽:158
網路好好手機卻顯示網路異常 瀏覽:405
網路上哪裡寫日記 瀏覽:142
怎麼讓手機移動網路信號變強 瀏覽:142
網路聯通手機 瀏覽:562
怎麼讓路由器擴大網路 瀏覽:990
手機突然顯示無法使用移動網路 瀏覽:654

友情鏈接