* 버클리소켓방식으로 코딩하는 경우는 유닉스와 동일합니다(recv, send의 리턴값/에러을 검사). 그러나, 윈도우 응용을 한개의 쓰레드로 코딩할 경우에는 통신에 위해 블록킹되지 않도록 유의하면서 코딩해야 합니다. 특히, UI를 가지는 응용인 경우에는 절대적으로 그렇게 해야합니다. 그래서, 윈도우에서 통신이 들어가는 프로그램은 쓰레드를 이용해서 통신루틴을 만들거나(쓰레드가 통신을 담당하고, 통신메시지처리후 다른 윈도우 핸들에게 메시지로 전송), 비동기적인 방식을 채택해야만 하는 경우가 많습니다.
* 윈도우의 WSA*시리즈(소위 메시지기반으로 구동되는 윈도우 운영체제 특성을 위한 소켓의 확장 즉, 윈속특성)를 이용해서 코딩하면 윈도우 스타일로 통신관련 이벤트를 메시지로 받을 수 있습니다. 전형적인 사례는 WSAAsyncSelect()를 사용하는(FD_CLOSE) 것입니다. 이를 이용해서 각종 통신이벤트를 윈도우메시지로 받을 수 있고 해당 콜백을 작성하여 코딩할 수 있습니다.
* 그외 윈도우의 장점인 IOCP와 같은 메카니즘을 고려해 볼 수 있겠습니다.
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
*
* 버클리소켓방식으로 코딩하는 경우는 유닉스와 동일합니다(recv, send의 리턴값/에러을 검사). 그러나, 윈도우 응용을 한개의 쓰레드로 코딩할 경우에는 통신에 위해 블록킹되지 않도록 유의하면서 코딩해야 합니다. 특히, UI를 가지는 응용인 경우에는 절대적으로 그렇게 해야합니다. 그래서, 윈도우에서 통신이 들어가는 프로그램은 쓰레드를 이용해서 통신루틴을 만들거나(쓰레드가 통신을 담당하고, 통신메시지처리후 다른 윈도우 핸들에게 메시지로 전송), 비동기적인 방식을 채택해야만 하는 경우가 많습니다.
* 윈도우의 WSA*시리즈(소위 메시지기반으로 구동되는 윈도우 운영체제 특성을 위한 소켓의 확장 즉, 윈속특성)를 이용해서 코딩하면 윈도우 스타일로 통신관련 이벤트를 메시지로 받을 수 있습니다. 전형적인 사례는 WSAAsyncSelect()를 사용하는(FD_CLOSE) 것입니다. 이를 이용해서 각종 통신이벤트를 윈도우메시지로 받을 수 있고 해당 콜백을 작성하여 코딩할 수 있습니다.
* 그외 윈도우의 장점인 IOCP와 같은 메카니즘을 고려해 볼 수 있겠습니다.
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
댓글 달기