特色:
下載即用,不需要安裝任何東西。
不需要額外設(shè)置,不需要修改你的程序的代碼。
系統(tǒng)級別的網(wǎng)絡(luò)控制,可以適用于命令行,圖形界面等任何 Windows 應(yīng)用程序。
不僅僅只支持 HTTP,任何 TCP, UDP 的網(wǎng)絡(luò)連接都可以被處理。
支持本地調(diào)試(服務(wù)器和客戶端都在 localhost)
"熱插拔",你的程序可以一直運行,而 clumsy 可以隨時開啟和關(guān)閉。
實時調(diào)節(jié)各種參數(shù),詳細控制網(wǎng)絡(luò)情況。
詳細信息
clumsy 首先根據(jù)用戶選擇的filter來攔截指定的網(wǎng)絡(luò)數(shù)據(jù)。在 filter 中可以設(shè)定你感興趣的協(xié)議(tcp/udp),端口號,是接收還是發(fā)出的端口。你也可以通過簡單的邏輯語句來進一步縮小范圍。當 clumsy 被激活時,只有符合這些標準的網(wǎng)絡(luò)數(shù)據(jù)會被進行處理,而你不感興趣的數(shù)據(jù)仍然會由系統(tǒng)正常傳輸。
當被 filter 的網(wǎng)絡(luò)數(shù)據(jù)包被攔截后,你可以選擇 clumsy 提供的功能來有目的性的調(diào)整網(wǎng)絡(luò)情況:
延遲(Lag),把數(shù)據(jù)包緩存一段時間后再發(fā)出,這樣能夠模擬網(wǎng)絡(luò)延遲的狀況。
掉包(Drop),隨機丟棄一些數(shù)據(jù)。
節(jié)流(Throttle),把一小段時間內(nèi)的數(shù)據(jù)攔截下來后再在之后的同一時間一同發(fā)出去。
重發(fā)(Duplicate),隨機復制一些數(shù)據(jù)并與其本身一同發(fā)送。
亂序(Out of order),打亂數(shù)據(jù)包發(fā)送的順序。
篡改(Tamper),隨機修改小部分的包裹內(nèi)容。
盡管當前寬帶網(wǎng)絡(luò)連接十分普及,但網(wǎng)絡(luò)傳輸其本身在本質(zhì)上總不是穩(wěn)定的。如果你的應(yīng)用程序中沒有應(yīng)對各種情況的處理,那么有可能一個丟失的 UDP 包裹都會讓你的程序崩潰。正確的調(diào)試這類行為 顯然需要再代碼結(jié)構(gòu)上進行仔細的設(shè)計和處理,還會很花功夫。而且在某些封裝緊密的開發(fā)環(huán)境(Unity3D 自帶的網(wǎng)絡(luò)庫可能是一個例子)下會更麻煩。clumsy 以盡可能減輕程序員負擔為目標, 希望提供一個簡單方便(但并不完美)的解決方案。