[Python]製作一個類似iperf的測速程式-使用Socket
延續上一篇的Client/Server架構,在Server不變的情況下,新增新功能。主要是一個想法,不確定網路上測試網速的寫法是不是這樣。我的想法很簡單:我從Server或是Client端,傳一個固定大小檔案到另一端,然後再去除以開始和結束的間隔時間,就是網速。Client->Server就是Upload,Server->Client就是Download。 網路上找到的測試網域之間的網速工具,有名氣的是iperf,分成Client和Server端,先開啟Server端準備好之後,Client端透過IP去連線,在console畫面底下輸入一些參數,接著就根據參數執行,畫面上就會帶出一些結果。而這樣的方法,蠻適合用python去快速實現的。 我就模擬一個簡單的測速腳本,再把現下網頁測試流行的上下行測試加進來,腳本過程中,會分別將上傳和下載的數據顯示出來。 「架構規劃與定義」 前半部和上一篇一樣,Server開啟準備好後,等待Client連線。接著Client就發送一些訊息,告訴Server開始測試,彼此是透過一些特定訊息來傳遞的。先執行download測試,再來執行upload測試。 延續上一篇架構,除了connect/disconnect之外,我還新增了一些訊息: download:Client通知Server開始傳檔案了 download/start send:傳送送完的時間差,分成Client和Server兩種 send/server:Server傳送測試檔案的時間差 send/server/test1/time send/client:Client傳送測試檔案的時間差 send/client/test1/time 還需要一個產生檔案的程序。程序雖然很簡單,主要用「open(filename,...