如何向netcat和其他脚本发送消息?

时间:2014-05-25 15:38:51

标签: linux bash named-pipes gnu-screen netcat

我试图建立一些客户端 - 服务器接口。将其视为一对一聊天。

我想要实现的是两个水平视图。我的(服务器)输入的底部,顶部的客户端输出和我的输入,两者都格式化(例如添加时间戳)。我正在使用netcat建立连接。我设法分割屏幕,格式化和打印传入的数据。我缺少的是在顶部窗口打印输入并将其发送到客户端。我正在使用命名管道。我用临时裸命令screen -c screens开始一切。将来,一切都将从带有参数的第三个脚本开始。我正在运行基于64位debian的发行版CrunchBang。

也许expect可以解决问题?任何帮助将不胜感激。

server.sh:

#!/bin/bash

pipe=/tmp/pipe
trap "rm -f $pipe" EXIT

if [[ ! -p $pipe ]]; then
    mkfifo $pipe
    #chmod +x $pipe
fi

nc localhost -lp 53656 >$pipe &

while true
do
    read message

    echo "$message" >$pipe
    clear
done

conv.sh:

#!/bin/bash
# conversation window

clear
pipe=/tmp/pipe

while true
do
    if read line <$pipe; then
        if [[ "$line" == "quit" ]]; then
            break
        fi

        NOW=$(date "+%H:%M")
        echo "($NOW) Client: $line"
    fi
done

屏幕配置:

startup_message off

split
focus
screen ./server.sh
title "input"

focus top
screen ./conv.sh
title "conv"

focus bottom

window view

0 个答案:

没有答案