Linux에서 LAN을 통한 채팅

Linux에서 LAN을 통한 채팅

Linux 서버를 사용하여 두 명의 사용자와 LAN 채팅을 설정하려고 하는데 둘 다 루트가 아닙니다.

저는 다음 두 가지 방법을 시도해 보았습니다.

write account_name두 컴퓨터 모두에서

그리고:

nc -l port_number 첫 번째 컴퓨터에서 nc IP_adress port_number 두 번째 컴퓨터에서

하지만 문제는 내가 뭔가를 쓰고 상대방이 Enter를 누를 때마다 다음과 같이 내 줄도 끊어진다는 것입니다.

저는 "이것은 단순한 enter텍스트입니다"라고 입력하고 있습니다. 다른 사람의 이 말이 enter내 경계를 무너뜨렸습니다.

이 문제를 해결할 방법이 있나요? 아니면 이 채팅을 다른 방법으로 설정할 수 있나요?

답변1

talk그리고 를 보세요 talkd.

바라보다https://wiki.archlinux.org/index.php/Talkd_and_the_talk_command그리고http://linux.die.net/man/1/talk더 알아보기.

답변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

관련 정보