shell 如何从服务器向客户端连续发送数据

dba5bblo  于 2023-02-16  发布在  Shell
关注(0)|答案(1)|浏览(148)

我想从服务器向客户端连续发送数据,在客户端只想显示接收到的数据,如何向客户端连续发送数据?echo "Hello client!"|nc不起作用。
先谢了
您可以看到下面的服务器端示例脚本:

#!/bin/bash

while true
do
    echo "Sending message to client..."
    echo "Hello, client!" | nc <ip> <port>
done
2cmtqfgy

2cmtqfgy1#

nc命令缺少-l(listen)参数,无法作为服务器运行。
试试这个:

#!/bin/bash

while true
do  
    echo "Sending message to client..."
    echo "Hello, client!" | nc -l 10000
done

在另一个终端中,以客户端身份连接任意次数,您将看到发送的消息:

$ nc localhost 10000
Hello, client!
^C  
$ nc localhost 10000
Hello, client!
^C
    • EDIT:**如果不需要重新连接就可以发送消息到客户端,可以创建一个fifo,让服务器不断读取这个fifo,然后将数据发送到客户端:
$ mkfifo fifo_toclient
$ tail -f fifo_toclient | nc -l 10000

像以前一样运行客户端命令:

$ nc localhost 10000

在另一个终端的同一目录中,修改脚本,将数据写入管道而不是直接写入nc,然后运行它:

$ cat send_to_client.sh
#!/bin/bash

while true
do  
    echo "Sending message to client..."
    echo "Hello, client!" > fifo_toclient
    sleep 1
done
$ bash ./send_to_client.sh

并且您应该在客户端的输出中看到这些消息。

相关问题