소켓 3

#023_Window_Network_비동기 소켓 입출력 모델_Overlapped 모델 (1)

안녕하세요 삽잡이입니다. 이번 시간에는 비동기 소켓 입출력 모델 중 Overlapped 모델 방식에 대해서 알아보려고 합니다.선 동작을 수행하는 함수들의 종류가 있는 입출력 모델 방식말입니다.이 '선 동작을 수행하는 함수'들은 모두 비동기 함수라고 부릅니다.곧, MS에서는 overlapped 함수라고 부른다 이겁니다. 이 모델 방식에서는 overlapped 구조체를 사용합니다. 첫번째, 두번째 인자는 OS가 사용합니다.두번째 인수는 OS가 얼마나 Read하고 Write했는지에 대한 길이를 저장한다고 생각하시면 됩니다.그리고 이 둘은 우선 사용전 초기화를 해줘야합니다. 어플리케이션에서 사용하는 세번째 네번째 인수를 알아봅시다.Offset은 데이터 입출력을 시작하고자하는 위치를 의미합니다.일반적으로 처음부터..

#020_Window_Network_소켓 입출력 모델_WSAAsynvSelect 모델

안녕하세요 삽잡이입니다. 이번 시간에는 네트워크 입출력 모델 중 WSAAsyncSelect 모델에 대해서 알아보겠습니다. Async 에는 '비동기적인' 라는 뜻이 있습니다.그렇다면 이번 시간에 알아볼 WSAAsyncSelect 모델은 비동기적 모델일까요? 다음 시간에 언급하겠지만, 우선 WSAAsyncSelect 모델의 Async는 여러 작업을 처리할 수 있다는 개념을 나타낸 것입니다.즉, I/O (입출력) 방식이 비동기 방식이 아니라,한 클라이언트의 작업이 다 처리되지 못했더라도,여러 클라이언트들을 같이 작업할 수 있다는 의미에서 Async입니다...동시 처리가 아닌 여러 작업을 처리한다는 것을 말하는 것이죠. 이해가 안간다면 이전 시간에 배웠던 동기/비동기에 대해서혹은, 다음에 다시 언급할 때 참고하..

#012_Window_Network_클라이언트 서버 통신 (소켓 관점)

안녕하세요 삽잡이입니다. 이번 시간에는 소켓 관점에서 본 클라이언트와 서버간 통신에 대해서 살펴보도록 하겠습니다. 참고로, 이전 내용들을 이해하지 않고 오시면 이해하는데 불편함이 있으실 수 있으니혹여나 처음 접하시는 분들은 이전 글들을 참고해주시길 바랍니다. 우리가 클라이언트와 서버의 통신 때 사용하던 send 함수의 예시입니다.이때 첫번째 인자인 '통신 소켓 핸들'은 클라이언트와 서버간에 통신을 위해 사용됩니다.즉, 통신 소켓의 핸들에는 현재 자신의 IP도 있지만, 상대방의 정보들도 알고 있다 이겁니다.다시말하면, 통신 소켓의 핸들을 통해 서로 연결되어있는 서버와 클라이언트간에 통신이 가능해지는 것입니다. send() 함수를 봤으니 이제 잠시 resv() 함수를 볼까요?recv() 함수에는 통신 소켓과..