i/o 연산 2

Boost.asio I/O 고정 크기 버퍼

개요다른 I/O와 마찬가지로, 네트워크 I/O에서도 메모리 버퍼를 사용한다.메모리 버퍼란, 프로세스의 주소 영역 내에 연속된 메모리 공간으로, 데이터를 저장하는데 사용한다. 어떤 입력 연산을 실행했다면, 프로세스에 도착한 데이터는 주소 공간 어딘가에 저장되어야만 처리할 수 있다. 즉, 버퍼가 있어야 I/O를 처리할 수 있다는 것이다. 입력 연산을 실행하기 전에 버퍼를 할당해둬야 하고 입력 연산 중에 데이터를 저장할 곳으로 이 버퍼를 사용해야 한다. 입력 연산이 끝나면, 버퍼에 입력 데이터가 저장되어 있어 나중에 어플리케이션이 처리할 수 있다. 이와 마찬가지로 출력 연산을 실행하기 전에는 데이터를 준비하여 출력 연산에 쓸 출력 버퍼에 저장해둬야 한다. 그러면 출력 버퍼가 데이터의 소스가 된다. 버퍼는 네트..

소켓 통신/Boost 2024.11.08

Boost.asio I/O 연산

개요네트워크 프로그래밍은 컴퓨터 네트워크를 사이에 두고 프로세스가 서로 통신하는 것을 말한다.통신이란 2개 또는 그 이상의 프로세스가 서로 데이터를 주고받는 것을 말한다.데이터를 주고 받는 것은 I/O 연산을 통해서 이루어진다. I/O 연산은 모든 분산 프로그램의 네트워크 구조에서 빼놓을 수 없는 중요 연산이다.I/O 연산은 데이터 교환과 직접 관련된 기능이며, 데이터를 읽을때는 입력, 보낼때는 출력 연산을 사용한다.  동기 I/O 연산동기 연산을 하면 I/O 연산을 호출한 스레드를 멈추게 하며, 연산이 끝날 때 풀어준다.통신에 시간이 많이 걸리지 않는 데이터를 연산을 한다면 괜찮겠지만, 크기가 큰 데이터나 엄청 잦은 데이터 처리를 요구한다고 하면 연산을 처리하는 동안 해당 스레드를 사용할 수 없다. 하..

소켓 통신/Boost 2024.11.08
728x90