파이썬 소켓 통신(UDP) / UDP 에코서버 실습에 대해서 정리한다.
※ 소켓
- 입/출력을 하기위한 fd와 비슷한 역할
- 통신하려는 타입에 맞게 소켓을 생성해서 사용
( 파일과 마찬가지의 개념 )
많은 언어들이 네트워크 통신을 하기 위해서는 소켓을 사용하도록 하고 있다.
* 소켓 프로그래밍 = 네트워크 프로그래밍
서버 : 요청을 받는 쪽
실행 -> 수신 대기
아이피 : 네트워크 상에서 호스트를 식별할 수 있는 식별정보
* 네트워크 전체에서 중복되선 안된다
ex) 집주소
포트 : 호스트 상에서 서비스를 식별하는 식별정보
* 호스트에서만 중복되지 않으면 된다.
ex) 이름
클라이언트 : 요청을 하는 쪽
실행 -> 송신
- netstat -anu를 통해서 udp에서 사용하고 있는 포트번호 확인 가능
( 옵션 u는 udp를 의미하고 소켓 통신을 할때 netstat 명령어를 이용해서 열려있는 포트를 항상 확인 해보는 습관을
들여야 한다!! )
※ 실습: UDP 에코서버
1. 서버
클라이언트로부터 전송된 문자열을 그대로 클라이언트에게 다시 돌려준다.
1). 서버 소켓 생성
sock = socket.socket( AF_INET, ... )
2). 데이터를 받을 준비 ( 포트 번호를 지정 )
sock.bind( '', 특정번호 )
3). 수신
info = sock.recvfrom( 크기 ) # 블록
8). 송신
sock.sendto( ... )
* 블록 함수: input()
특정 행동이 취해질 때까지 기다린다.
( 서버쪽 소켓 프로그래밍 코드 )
2. 클라이언트
서버에게 문자열을 전송하고, 서버로부터 들어오는 문자열을 그대로 화면에 출력
4). 소켓 생성
sock = socket.socket( .. )
5). 데이터를 보낼 준비
sock.bind( '', 0 ) # 0번이면 임의의 번호로 포트가 열린다.
6). 송신
sock.sendto( data, addr )
7). 수신
sock.revfrom( ... ) # 블록
( 클라이언트쪽 소켓 프로그래밍 코드 )
'프로그래밍 > NETWORK HACKING' 카테고리의 다른 글
[네트워크 보안] 파이썬3 struct 모듈을 이용한 패킷 분석 (0) | 2017.06.17 |
---|---|
[네트워크 보안] UDP 통신 계층별 분석 (0) | 2017.06.16 |
[네트워크 보안] 파이썬 TCP 소켓 / TCP 에코 서버 & 클라이언트 (0) | 2017.06.15 |
[네트워크 보안] OSI 7계층 / 파이썬 소켓 프로그래밍 / MAC 주소 변경 방법 (2) | 2017.06.12 |
[네트워크 보안] CentOS6 Python3 설치 및 기본 실습 환경 구축, 보안 설정 해제 (0) | 2017.06.08 |
댓글