0

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

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

4

1 回答 1

0

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

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

delay_netcat.sh是来自 mariux的脚本

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

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

接下来我们在 9001 上启动另一个 netcat 监听,同时向 9000 发送 message1

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

这里sed用于查找message2并输出message。

于 2013-09-14T00:17:12.623 回答