네트워크 프로그래밍이란?
네트워크를 대상으로 입출력하는 프로그래밍을 의미한다.
서로 다른 두 대 이상의 컴퓨터가 네트워크를 통해 데이터를 주고 받는 입출력 프로세스를 구현한 것이다.
Socket이란?
네트워크를 통해 데이터를 주고 받는 방법을 통신 규약에 맞게 함수로 구현해 놓은 것이다.
이 함수들은 소켓의 생성, 연결, 데이터의 송수신 등의 작업 등을 구현 해놓은 API이다.
물론 Socket으로 네트워크 통신 기능을 구현하기 위해서는, 소켓의 생성, 만들어진 소켓을 통해 데이터를 주고 받는 절차에 대한 이해, 운영체제 및 프로그래밍 언어에 종속적으로 제공되는 소켓 API 사용법을 숙지해야 하지만, 개발자는 소켓의 구현만 고려하면 되는 프로그래밍 이점을 가진다.
Socket Network Program 실행 흐름
*1) 서버 소켓은 일반적으로 다수의 클라이언트 소켓으로부터 연결 요청을 받는다.
*2) 연결 소켓은 서버 소켓에서 클라이언트와 연결된 연결 소켓으로 서버 소켓과 다르다.
*3) 클라이언트 소켓은, 서버와 연결 된 뒤, 별도의 소켓을 생성하지 않고, 같은 소켓을 사용한다.
Socket API
C/C++ Socket API를 사용하여 네트워크 프로그래밍하는 이유는 운영체제와 가까운 저수준(low-level) 프로그래밍을 지원하기 때문에 더 세밀하게 네트워크 동작을 제어하거나 최적화하여 빠른 응답 시간이 필요한 네트워크 애플리케이션을 구현 할 수 있기 때문이다.
'🔊 Language > C++' 카테고리의 다른 글
C++ - TcpSocket 통신 Server 구현 (0) | 2024.08.30 |
---|---|
C++ - 소켓 프로그래밍 함수 (0) | 2024.08.14 |
C++ - Map (0) | 2024.08.01 |
C++ - STL 컨테이너 (0) | 2024.07.31 |
C++ - Stack (0) | 2024.07.29 |