목록2024/12/28 (2)
나만의 작은 도서관
목차블로킹 방식의 문제점논블로킹 방식으로 echo 서버 코드 바꾸기결론깃헙 코드블로킹 방식의 문제점블로킹 함수를 호출 시, 함수 내 작업이 완료되기 전까지 호출자(caller)는 작업을 멈추고 대기하게 된다. 이러한 방식의 문제점은 함수의 작업을 하는동안 함수의 결과가 나오는 동안 처리해도 되는 작업들을 처리할 수 없다는 것이다. 기존의 TCP/UDP echo 서버에서 사용한 블로킹 함수는 다음과 같다.accept -> 접속한 클라가 있을 때까지 블로킹connect -> 서버에 접속 될 때까지 블로킹send, sendto -> 요청한 데이터를 송신 버퍼에 복사될 때까지 블로킹recv, recvfrom -> 수신 버퍼에 도착한 데이터가 있고, 이를 유저레벨 버퍼에 복사될 때까지 블로킹즉, 위 함수들을 실행..
목차소켓 옵션 get, setSO_KEEPALIVESO_LINGER::shutdown()SO_SNDBUF, SO_RCVBUFSO_REUSERADDRTCP_NODELAY소켓 옵션 get, set소켓 옵션은 클라이언트-서버가 통신할 때 발생하는 특정 상황을 어떻게 대응할 것인지 설정하기위해 사용한다. 설정된 옵션을 가져오기 위해서는 getsockopt() 함수를, 옵션을 설정하기 위해선 setsockopt() 함수를 사용하면된다. getsockopt() 함수와 setsockopt() 함수는 동일한 인자를 받으며 총 5개의 인자를 넣어줘야한다. setsockopt() 함수를 보면 다음과 같이 생겼다.int setsockopt( [in] SOCKET s, [in] int level, ..