如何使netcat服务器响应不同的端口



我需要模拟一个场景(在UDP下,如果重要的话)

1) nc服务器侦听端口9000(ncserver1)2) nc客户端连接到nc服务器并发送"message1",同时另一个nc服务器启动并在端口9001(ncserver2)上侦听3) 收到"message1"后,ncserver1应启动与ncserver2的连接并发送"message2"4) ncserver2接收消息"mess"

这是一个有趣的场景。首先要做的是在9000上启动netcat,等待message1。sed用于过滤掉所有不是message1的消息,并创建在收到message1时发送的message2。

nc -u -l -p 9000 | sed -un 's/message1/message2/p' |./delayed_netcat.sh  -u localhost 9001

delayed_netcat.sh是来自mariux 的脚本

#!/bin/bash
read line
netcat "${@}" < <(echo $line ; cat)

它会延迟连接到9001,直到它有东西要发送。

接下来,我们在9001上启动另一个netcat侦听,同时向9000 发送消息1

nc -u -l -p 9001 | sed -un "s/message2/mess/p" &  echo "message1" |nc -u localhost 9000

这里sed用于查找message2和输出mess。

最新更新