(1) 네트워크 프로그래밍과 소켓

네트워크 프로그래밍
  : 원격지의 호스트들 사이에 서로 데이터를 주고 받을 수 있도록 프로그램을 구현.
소켓
  : 소프트웨어 차원에서 원격에 존재하는 두 호스트를 연결시켜주는 매개체.

=> 소켓 프로그래밍!


(2) 소켓통신의 전체적인 구조와 흐름

■ Server Socket

소켓 생성 - 전화기 구입.
  : int socket(int domain, int type, int protocol)

 주소및 포트 할당 - 전화번호 할당.
  : int bind(int sockfd, struct sockaddr *myaddr, int addrlen)

연결요청대기 - 케이블 연결.
  : int listen(int sockfd, int backlog)

연결수락 - 수화기를 든다.
  : int accept(int sockfd, struct sockaddr *addr, int *addrlen)

■ Client Socket

소켓 생성 - 전화기 구입.
  : int socket(int domain, int type, int protocol)

연결요청 - 전화를 건다.
  : int connect(int sockfd, struct sockaddr *addr, int *addrlen)



(3) 전화와 소켓 비교

 전화
전화기를 구입하고, 전화번호를 할당하고, 케이블을 연결하고, 전화가 오길 기다리다가, 전화가 오면 승낙해서
   대화하는 것.

소켓
: 소켓을 생성하고, IP주소를 할당하고, 네트워크에 소켓을 연결하고, 요청을 기다렸다가, 연결요청이 오면 수락해서
  데이터를
주고받는 것.



by 민트앤라떼 2012. 2. 27. 14:15