Làm thế nào để gửi tin nhắn cho netcat và tập lệnh khác?


1

Tôi đang cố gắng tạo một số giao diện máy khách-máy chủ. Hãy nghĩ về nó như một cuộc trò chuyện một đối một.

Những gì tôi muốn đạt được là hai quan điểm ngang. Dưới cùng cho đầu vào (máy chủ) của tôi, đầu cho đầu ra của khách hàng và đầu vào của tôi. Cả hai định dạng (ví dụ: thêm dấu thời gian). Tôi đang thực hiện kết nối bằng netcat. Tôi quản lý để phân chia màn hình, định dạng và in dữ liệu đến. Những gì tôi thiếu là in đầu vào của tôi trong cửa sổ trên cùng cùng với việc gửi nó cho khách hàng. Tôi đang sử dụng đường ống có tên. Tôi bắt đầu mọi thứ với lệnh trần tạm thời screen -c screens. Trong tương lai, mọi thứ sẽ bắt đầu từ tập lệnh thứ ba với các tham số). Tôi đang chạy bản phân phối 64 bit dựa trên debian CrunchBang.

Có lẽ expectcó thể giải quyết vấn đề? Bất kỳ trợ giúp sẽ được đánh giá cao.

máy chủ

#!/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

kết luận

#!/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

màn hình cấu hình:

startup_message off

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

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

focus bottom

Nhìn cửa sổ:

nhập mô tả hình ảnh ở đây

Câu trả lời:


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.