操作模式
对于 netcat 程序,存在两种模式,即 服务端 和 客户端, 它们的区别在于连接建立的方式。 一旦连接建立,客户端/服务器 的行为都是一样的,使用两个并行的循环处理:
- 从标准输入,写到 TCP Socket
- 从 TCP Socket 读, 写到标准输出
主要有两种基本的并发模型:
- 多线程配合阻塞IO
- IO多路复用配合非阻塞
netcat 的实现
这里提供三种netcat的实现:
- recipes/tpc/netcat.cc thread-per-connection
- recipes/python/netcat.py IO-multiplexing
- recipes/python/ne