일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 맥
- linux
- 리눅스
- 유데미 러닝크루
- 개발
- 디자인
- flutter
- dart
- 한빛미디어
- 위젯
- python
- 유데미
- 도서
- vscode
- 코딩
- 명령어
- 파이썬
- 가상환경
- 프로그래밍
- manim
- 수학 애니메이션
- 개발자
- 개발자도서
- Code Generation
- 디자인패턴
- command
- column
- 책
- 플러터
- 다트
- Today
- Total
승상의 코딩 블로그
[Linux] nc 네트워크 도구 본문
소켓 통신하는 프로그램을 만들어 왔을 때, 테스트 프로그램을 받지 못하는 경우가 종종 있다.
인터넷이 안된다면 외부에서 테스트용 프로그램을 다운받아 확인하기도 어렵다.
이렇게 네트워크를 기반으로 테스트해야하는 경우 리눅스의 nc 명령어를 사용해보자.
nc 는 netcat 의 약어로써 net 은 네트워크이고 cat은 리눅스 명령어 cat이다.
network 로 출력해준다는 의미로 이해하면 좋을 듯하다.
* nc 는 기본 패키지로 많이 제공된다.
* cat은 concatenate 의 약어로 파일을 이어붙이는 명령어지만 파일의 내용을 출력하는데 더 활용된다.
가정
데이터를 받으면 그 데이터를 그대로 다시 응답하는 TCP 에코 서버를 테스트 한다고 하자.
TCP 에코서버의 ip 는 192.168.64.8 이고 포트는 12345 이라고 하자.
테스트 (nc를 TCP Client로 사용)
TCP 서버를 먼저 실행시키고 외부의 연결을 기다린다.(리스닝)
nc [접속하는 서버 ip] [접속하는 서버 Port]
nc 명령어를 입력하면 TCP 서버에 정상적으로 연결된다. (TCP 서버의 콘솔창을 확인)
Client(왼쪽)에서 {"test":12345} 를 콘솔에 직접 입력한다.
Server(오른쪽)에서 받고 응답한 데이터가 콘솔에 출력되고,
Client(왼쪽)에서도 받은 데이터를 콘솔에 출력한다.
nc 명령어 실행후 상대편에서 받는 데이터를 적어서 보내주면 상대 프로그램을 테스트해볼 수 있다.
nc [접속하는 서버 ip] [접속하는 서버 Port] < [데이터가 적힌 파일]
파일에다가 보내는 데이터를 적어두면 '<'를 통해서 복잡하거나 반복되는 데이터 전송을 간단히 할 수 있다.
서버로 테스트하고 싶다면?
nc -l [접속하는 서버 ip] [접속하는 서버 Port]
-l : 외부의 연결을 리스닝하는 옵션
-v : 상세출력
'Linux (리눅스)' 카테고리의 다른 글
[Linux] watch 주기적으로 명령 실행 (0) | 2024.12.03 |
---|---|
[Linux] netstat 네트워크 상태 모니터링 (0) | 2024.12.02 |
가상환경 설정 시 Virtualization(가상화)와 Emulation(에뮬레이션) 차이 (0) | 2024.10.20 |
[Linux] 초기 root 계정 비밀번호 변경하는 방법 (2) | 2024.09.19 |
[Linux] - 출력 재지정 (0) | 2024.09.19 |