오늘은 네트워크 I/O 방법론에 대해서 포스팅을 해보도록 하겠습니다.
Application이 read를 호출할 때, 커널에 데이터가 들어올 때까지 blocking 시킨 후,
데이터가 들어올 때 Application으로 process가 돌아오게 됩니다.
예외처리가 필요한 경우 Blocking 되므로 위험합니다.
on-Blocking 방식은 Application이 Read를 하게되면 데이터가 있는지 없는지 return 해줍니다.
Data가 없는 경우 없다고 return을 하며 있는 경우 Data 를 copy하여 전송해줍니다.
하지만, Busy Polling을 통한 방식으로 리소스가 많이 소요됩니다.
FD_ZERO(fd_set *fdset)
FD_SET(int fd, fd_set *fdset)
Select(int max, fd_set *readset, fd_set *writeset, fd_set *exceptset, const struct timeval *timeout)
FD_ISSET(int fd, fd_set *fdset)
3가지의 I/O 방법론에 대해서 설명해보았습니다.
다음에는 select 함수 예제 및 사용방법을 포스팅하도록 하겠습니다.
그럼 20000.
TCP/IP 소켓프로그래밍, 클라이언트 통신, C 소켓통신, 네트워크 프로그래밍 (2) | 2020.03.17 |
---|---|
Samba 서버 설정, 쌈바 서버 설정, Ubuntu, 우분트 서버, 리눅스 서버 (0) | 2020.03.07 |
HTTP 인증, Baisic 인증, Digest 인증, 네트워크 보안 (0) | 2020.03.06 |
네트워크 장비, 허브(Hub), 스위치(Switch), 라우터(Router) 개념 및 정리 (0) | 2020.03.05 |
네트워크, DHCP 프로토콜 원리, DHCP 원리 (0) | 2020.03.04 |