728x90
1. Socket 통신
■ Socket
- 네트워크 상에서 돌아가는 두 개의 프로그램간 양방향 통신의 하나의 엔드포인트
- 엔드포인트는 ip주소와 port번호의 조합
- 데이터를 주고받을 수 있는 구조체
■ Server Socket
- 클라이언트 소켓의 연결 요청을 대기하고, 연결 요청이 오면 클라이언트 소켓을 생성 후 통신 가능
- socket()함수를 이용하여 소켓 생성
- bind()함수로 ip와 port 번호를 설정
- listen()함수로 클라이언트의 접근 요청에 수신 대기열을 만들어 몇개의 클라이언트를 대기시킬지 결정
- accept()함수를 사용하여 클라이언트와의 연결을 기다림
■ Client Socket
- 데이터 송/수신이 일어나는 것은 클라이언트 소켓
- socket()함수를 이용하여 소켓 생성
- connect()함수로 통신 할 서버의 설정된 ip와 port 번호에 통신 시도
- 통신 시도 시, 서버가 accept()함수를 이용하여 클라이언트의 socket descriptor를 반환
- read(), write()를 통해 클라이언트와 서버가 서로 통신
- Server와 Client의 관계를 아래 이미지로 표현하며 A, B, C가 클라이언트임