在 Linux 中通过 LAN 聊天

在 Linux 中通过 LAN 聊天

我正在尝试使用 Linux 服务器与两个用户建立 LAN 聊天,但他们都不是 root。

我尝试过这两种方法:

write account_name在两台计算机上

和:

nc -l port_number 在第一台计算机上 nc IP_adress port_number 在第二台计算机上

但问题是,每当我写一些东西并且另一边的人按下回车键时,它也会破坏我的行,例如:

我正在输入:“这只是一个简单enter的文本”。另一个人的这句话enter打破了我的底线。

有什么方法可以解决这个问题吗?或者我可以通过其他方式设置此聊天?

答案1

答案2

也许与 tmux 和 netcat 一起使用:

mkfifo cf ; tmux new "cat cf" \; split -h "nc -l  1234 > cf" ; rm cf   # server
mkfifo cf ; tmux new "cat cf" \; split -h "nc $IP 1234 > cf" ; rm cf   # client

...或基于相同工具的完整版本:

#!/usr/bin/env bash
# lanchat script, server: "./lanchat", client: "./lanchat serverIpAddr"

port=1234 ; [ -z "$1" ] && target='-l' || target="$1"
LOG=$(mktemp) ;    trap 'rm "$LOG"' EXIT INT TERM HUP

tmux new "watch -n1 cat $LOG" \; split -l 1 \
  "  while read ME; do echo \"> me: \$ME\" >> $LOG ; echo \"\$ME\" ; done \
   | nc $target $port \
   | while read HE; do echo \"< he: \$HE\" >> $LOG ; done"

答案3

相关内容