Netcat 으로 간단한 채팅 서버 만들기
이 단계에서는 추가 옵션을 사용하여 netcat 으로 더 강력한 채팅 서버를 만드는 방법을 배우게 됩니다. 이 예제는 netcat 을 더 지속적인 연결에 사용하는 방법을 보여줍니다.
먼저, 유용한 몇 가지 추가 netcat 옵션을 이해해 보겠습니다.
-k: 이 옵션을 사용하면 클라이언트가 연결을 끊은 후에도 서버가 계속 수신 대기하여 시간이 지남에 따라 여러 연결을 사용할 수 있습니다.
-v: 자세한 출력을 활성화하여 연결에 대한 더 많은 정보를 제공합니다.
클라이언트가 연결을 끊은 후에도 계속 실행되는 채팅 서버를 만들어 보겠습니다. 첫 번째 터미널에서:
cd ~/project
nc -l -k -v 7777
netcat 이 수신 대기 중임을 나타내는 출력을 볼 수 있습니다.
Listening on 0.0.0.0 7777
이 서버는 클라이언트가 연결을 끊은 후에도 계속 실행되고 새 연결을 수락합니다.
이제 두 번째 터미널에서 이 서버에 연결합니다.
cd ~/project
nc localhost 7777
첫 번째 터미널에서 다음과 유사한 새 연결을 나타내는 메시지를 볼 수 있습니다.
Connection from 127.0.0.1 port 7777 [tcp/*] accepted
이제 이전과 마찬가지로 터미널 간에 메시지를 교환할 수 있습니다. 한 터미널에 메시지를 입력하고 Enter 키를 눌러 다른 터미널로 보냅니다.
서버의 지속성을 테스트하려면 두 번째 터미널에서 Ctrl+C를 눌러 클라이언트의 연결을 끊습니다. 그런 다음 동일한 명령을 사용하여 다시 연결합니다.
nc localhost 7777
다시 연결하여 채팅을 계속할 수 있으며, 이는 서버가 클라이언트 연결 간에 활성 상태를 유지함을 보여줍니다.
채팅 대화 내용을 로그로 저장하려면 서버 명령을 수정하여 모든 들어오는 메시지를 파일에 저장할 수 있습니다. Ctrl+C를 눌러 현재 서버를 중지한 다음 출력 리디렉션을 사용하여 새 서버를 시작합니다.
cd ~/project
nc -l -k -v 7777 | tee chat_log.txt
이 명령은 tee 유틸리티를 사용하여 들어오는 메시지를 화면에 표시하고 chat_log.txt 파일에 저장합니다.
두 번째 터미널에서 다시 연결하고 몇 개의 메시지를 보냅니다. 몇 개의 메시지를 교환한 후 클라이언트의 연결을 끊고 (두 번째 터미널에서 Ctrl+C 누르기) 채팅 로그 파일을 확인합니다.
cat ~/project/chat_log.txt
클라이언트 터미널에서 보낸 메시지를 볼 수 있습니다.
서버를 중지하려면 첫 번째 터미널에서 Ctrl+C를 누릅니다.
이 단계에서는 netcat 을 사용하여 더 강력한 채팅 서버를 만들고 통신을 로깅하는 방법을 보여주었습니다. 이는 기록 보관 또는 디버깅 목적으로 유용할 수 있습니다.