前言

最近开发用到了 socket ,然后开发好了之后,会按照一定的规则发送数据,但是客户端还没开发。

这时候我想要连上 socket 去调试,看看都发了什么,有没有按照规则发送数据。却由于客户端没有开发好却没法调试。

经过一番查找,找到了 netcat(使用的命令是nc) , 它可以用来连接 TCP ,恰好能满足我的需要,这样就非常方便,而不用等到客户端开发好了,才能调试。

使用

netcat 是一个命令行工具,可以用来建立 TCP/UDP 的连接,或者监听连接。

也就是我们可以它来创建 TCP/UDP 的客户端或者服务端。

来看下常用的参数

参数 作用
-v verbose 打印详细日志
-l 监听连接
-4 使用 IPv4
-6 使用 IPv6

服务端

由于这里没有写好的服务端,所以我们使用 netcat 来监听 8080 端口,充当一下服务端

1
nc -v -l 127.0.0.1 8080

执行完之后就监听了本机的 8080 端口,这时候就在等待客户端的连接

客户端

1
nc -v 127.0.0.1 8080

输入完上面的指令,紧接着就会输出连接成功的提示,如下所示

1
Connection to 127.0.0.1 port 8080 [tcp/http-alt] succeeded!

这时候回到服务端,就可以开始往客户端发送数据了,我们发送一个 Hello netcat from server 如下所示 客户端就会收到来自服务端的消息 当然客户端也可以给服务端发送消息,这其实就是一个简单的聊天软件了。

总结

今天讲了使用 netcat 调试 TCP 的小技巧。

netcat 还有许多其他的功能,它常常用于端口扫描,传输文件,感兴趣可以自己查阅资料,试试。

参考

Linux基础 | nc 网络命令,通过TCP和UDP在两台主机间建立连接传递消息、文件_Lan.W 的博客-CSDN博客