网络编程利器netcat

netcat(简写为nc)是什么?

Mac内置了nc命令,使用man nc查看其帮助文档:

DESCRIPTION
     The nc (or netcat) utility is used for just about anything under the sun involving
     TCP or UDP.  It can open TCP connections, send UDP packets, listen on arbitrary TCP
     and UDP ports, do port scanning, and deal with both IPv4 and IPv6.  Unlike
     telnet(1), nc scripts nicely, and separates error messages onto standard error
     instead of sending them to standard output, as telnet(1) does with some.

     Common uses include:

           o   simple TCP proxies
           o   shell-script based HTTP clients and servers
           o   network daemon testing
           o   a SOCKS or HTTP ProxyCommand for ssh(1)
           o   and much, much more

简单翻译一下,nc是一个强大的TCP和UDP相关的工具,可以打开TCP连接,发送UDP数据包,监听任意TCP或UDP端口,做端口扫描,同时支持IPv4和IPv6,等等。

通常可以用nc做下面这些事情:

  • 简单的TCP代理;
  • 基于shell脚本的HTTP客户端和服务端;
  • 网络守护进程测试;
  • 用于ssh的SOCKS或HTTP代理命令;
  • ...

下面讲下如何用nc启动一个客户端和服务端,并在两者之间通信:

  • 打开一个终端窗口,输入命令:nc -l 9999,这样就开始监听9999端口;
  • 打开第二个新的终端窗口,输入命令:nc 127.0.0.1 9999
  • 这个时候在第一个终端输入任何文本,并按回车,在第二个终端窗口就可以立即看到内容,反之亦然。此时nc已不care哪个是服务端、哪个是客户端了,两者互为客户端/服务端。
  • 在上面两个终端窗口的任一个窗口按Ctrl+C终止,则两个窗口的监听都被终止。

使用man nc查看帮助手册可以查看到nc的更详细用法。

你可能感兴趣的:(网络编程利器netcat)