2013-08-21 41 views
0

我需要模拟一个场景(UDP下,如果要是事项)如何让netcat的服务器响应到不同的端口

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

回答

0

这是一个有趣的场景。首先要做的就是启动netcat 9000等待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) 

一个script可延迟连接到9001,直到它有东西送。

接下来我们启动另外一个netcat的监听9001,并在同一时间发送给MESSAGE1 9000

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

这里的sed用来查找消息2和输出混乱。

相关问题