發布一個 Sockets 編程的互動式實驗工具

來源:互聯網
上載者:User

學習 Sockets 網路編程的時候往往要寫很多小程式來熟悉 api,觸發各種時序,觀察系統的行為。

最近在編寫自己的 C++ 網路程式庫,需要考察許多情境下 Sockets 系統調用的傳回值。於是我寫了一個簡單的命令列互動式工具,用來手動觸發各種邊界條件。這讓我能方便地觀察系統的行為。

編譯方法:

先安裝 libreadline-dev

$ sudo apt-get install libreadline-dev

然後擷取原始碼

$ git clone git://github.com/chenshuo/tempest.git

$ cd tempest

$ make

運行方法:

開啟兩個命令列視窗,一個接受 TCP 串連,另一個發起 TCP 串連。

# 在 2000 連接埠偵聽串連

$ ./tempest -s

# 串連到伺服器

$ ./tempest 10.0.0.6

然後就可以在命令列控製程序行為,例如

?  - 獲得協助

r  - 讀

w  - 寫 1 位元組

p  - 輪詢,預設立即返回,可以跟秒數為參數

st - 顯示 Sockets 狀態

c - 關閉串連

nb - 設定非阻塞讀寫

斷行符號 - 重複上一命令

上下鍵 - 查看命令曆史

以上是不完全列表,可鍵入 ? 來獲得完整命令列表。

我通常會在兩個視窗之間來回切換,按自己設想的順序操縱事件的發生。

這兩個視窗不一定都是 tempest,其中一個可以是 nc,或者 telnet。

必要的話,還可以再開啟兩個命令列視窗,一個看 tcpdump,另一個看 strace。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.