導航:首頁 > 編程語言 > javasocket重連

javasocket重連

發布時間:2024-12-12 04:21:42

1. java socket如果服務端掉線 客戶端應該怎樣重連,實現的思路是怎麼樣的,最好能有具體的代碼參考一下

看代碼,不明白的追問

// 無窮循環,用於自動重新連接網關
while (true) {
// 捕獲sleep異常
try {
// 捕獲socket異常
try {
// 創建socket連接
socketGateway = new Socket("127.0.0.1", 8888);

// 創建輸入輸出對象
inStream = new DataInputStream(socketGateway.getInputStream());
outStream = new DataOutputStream(socketGateway.getOutputStream());

byte buf[] = new byte[1]; // 數據緩沖區
int intLen; // 讀緩沖區返回的長度

// 無窮循環,用於讀緩沖區數據
while (true) {
// 捕獲讀緩沖區異常
try {
intLen = inStream.read(buf, 0, 1);

// 可讀長度-1則斷開連接
if (intLen == -1) {
break;
}

// 處理buf
}

// 連接斷開
catch (EOFException e) {
break;
}

// 接收數據超時
catch (SocketTimeoutException e) {
break;
}

// 超過數據包末尾
catch (IOException e) {
break;
}
}
} catch (Exception e) {
// 處理socket錯誤
}

// 休眠1秒後重連
sleep(1000);
} catch (Exception e) {
// 處理sleep錯誤
}
}

2. 關於JAVA中線程啟動SOCKET中的異常處理問題,望各位提出寶貴建議

加try catch 捕獲那個異常,延時再檢查網路後再重連

Ping
//using System.Net;
NetworkInformation.Ping p = new NetworkInformation.Ping();
NetworkInformation.PingOptions options = new NetworkInformation.PingOptions();
options.DontFragment = true;
string data = "";
byte[] buffer = Encoding.ASCII.GetBytes(data);
//Wait seconds for a reply.
int timeout = 4000
NetworkInformation.PingReply reply = p.Send(%%1, timeout, buffer, options);
%%2=reply.Status;

閱讀全文

與javasocket重連相關的資料

熱點內容
java新建對象數組 瀏覽:145
aps系統排產EXCEL源碼 瀏覽:184
cnc學什麼編程語言 瀏覽:875
多元邏輯回歸演算法的矩陣 瀏覽:2
地鐵逃生體驗服顯示伺服器異常怎麼辦 瀏覽:323
14乘17的速演算法 瀏覽:346
小型泡沫壓縮機 瀏覽:104
php上傳的文件名亂碼 瀏覽:996
2017賀銀成講義pdf 瀏覽:854
麻將分演算法 瀏覽:589
安卓手機如何打開sdl文件 瀏覽:215
為什麼安卓手機截不了收付款的圖 瀏覽:242
賤人插件命令 瀏覽:843
單片機發展論文 瀏覽:316
條件編譯和符號幹嘛用的 瀏覽:85
程序員坐牢了會被安排去寫代碼嗎 瀏覽:855
iphoneapp使用時間怎麼關閉 瀏覽:431
怎麼建造生存伺服器指令 瀏覽:554
安卓的怎麼在光遇裡面登號 瀏覽:593
緋色漫畫App在哪裡下載 瀏覽:385