안녕하세요 오늘은 파이썬 socket 모듈에 대해 알아보겠습니다.
socket 프로그래밍은 네트워크 통신에서 종착점이 되는것이라고 생각하시면됩니다.
이걸 그림으로 살펴 보면
이런식으로 볼수 있는데, 우선 client process에 첫 번째 층이 socket layer 입니다.
이게 무슨 뜻이냐면, 프로그램이 네트워크 통신을 하고 싶으면, 무조건 socket을 처음에 거치고,
마지막에도 socket을 거쳐야 합니다.
다시 한번 정리하면, 소켓은 프로그램이 네트워크 통신을 하기 위해서는 무조건 socket을 거쳐야 한다고
생각하시면 될것 같습니다.
5 tuple은 통신에 사용되는 모든 데이터의 기본 형태 입니다.
1.프로토콜
2. 호스트 !P 주소
3. 호스트 포트 번호
4. 목적지 IP주소
5. 목적지 포트 번호
여기서 프로토콜은 대부분 TCP/UDP가 사용되며,
호스트 IP주소와 포트 번호는 목적지에게 자기가 누구인지 알려주기 위해서
꼭 필요하고, 목적지 IP주소와 목적지 포트 번호는 호스트가 들어가기 위해 필요하다.
1. socket() : 소켓을 처음 할때는 소켓을 생성 해야되는데, 소켓을 생성하는 역활
2. bind(): 사용할 아이피 주소와 포트 번호를 등록함.
3. send() : 클라이언트가 서버한테 데이터 보낼때 씀
4. recv(): 클라이언트가 보낸 데이터를 얼마 정도 받을 건지 적으면됨
5. listen() : 서버가 클라이언트 들어오라고 포트 열어주는 명령어
6. connect() : 클라가 서버한테 연결하기 위해 서버의 아이피주소와 포트 번호를 적어야됨
7. accept() : 클라의 연결을 받고 소켓연결을 시작함 ------ 새로운 소켓 생성
소켓 종류는 대표적으로 2가지가 있습니다.
stream socket은 tcp 통신을 기반으로 합니다.
그래서 신뢰성과 데이터의 순서를 보장 합니다.
Datagram socket은 udp 통신을 기반으로 합니다,
그래서 데이터의 신뢰성을 보장 할수 없고, 데이터의 순서 까지 보장할수 없습니다.
하지만 빨리 빨리 데이터가 이동합니다.
달라진 점은 connect 과정이 없어짐
[파이썬] socket 모듈에 대해 알아보자!(getaddrinfo, getfqdn, gethostbyname, gethostname , getprotobyname, getservbyname) (0) | 2023.11.05 |
---|---|
[파이썬] class 기초 총정리 ------ 초딩 이해 (0) | 2023.09.13 |
[파이썬] 파일 입출력(with, pickle) (0) | 2023.09.07 |
[파이썬] 표준 입력과 출력과 에러 개념/파이썬 (0) | 2023.09.04 |
[파이썬] 함수 (0) | 2023.08.31 |