发布一个 Sockets 编程的交互式试验工具

学习 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。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值