在做TCP客戶端開發的過程中,大家可能都會遇到服務端不穩定性造成我們客戶端發生錯誤的情況,比如因為網絡不好造成Socket連接斷開,或者服務端主動關閉了你的連接請求。
那么遇到這種情況你的程序該怎么處理,對,應該做好斷開自動重連機制,而且要保證自動重連的及時性,以及資源消耗率、CPU占用率都良好。
如果你想好了方案,改好了代碼,怎么測試呢?
於是我寫了個測試工具,用於模擬服務端極端情況,以幫助我們完善我們的客戶端。
程序界面:
程序功能說明:
1.本工具實現TCP服務端,可對接任意TCP客戶端連接並直接顯示十六進制數據包。 2.實現了CMPP2.0、CMPP3.0、SGIP協議的服務端簡單應答,可用於對此三類客戶端進行並發測試,客戶端可用任意參數連接,本工具不驗證參數准確性。 3.可自行選擇是否自動回復應答包。 4.可啟動自動每隔N秒斷開M秒極限環境測試。 |
因為我自己接觸三大運營商短信協議比較多,所以順帶實現了CMPP2.0、CMPP3.0、SGIP協議的解析,以幫助測試這三類客戶端。
客戶端需要做好斷開自動重連,首先要及時,不能服務端斷開一個小時了你再重連 那有什么用呢,然后不能頻繁不間斷重連,比如服務端確實長時間斷開了,那你就要做一下重連減速控制,比方從每隔5s逐漸增加間隔時間,直至報警提醒人工干預。
這是我本地模擬用CMPP2.0客戶端進行群發壓力測試的截圖:
工具下載: