본문 바로가기

Network2

Non-Blocking 에 대한 정의 소켓 생성시 default 모드는 blocking socket이다. non-blocking 용어에 대해 처음 접한다면 생소한 용어이겠지만 일반적으로 소켓 프로그래밍에 사용되는 함수들은 처리될때까지 소켓의 진행을 막을 수 (block) 있는 시스템 콜이기 때문에 비동기적인 작업 수행이 불가능 하게 된다. 하지만 Non-Blocking Socket으로 선언시 네트워크 시스템이 즉시 응답할 수 없는 경우에도 OS는 작업의 완료 여부와 상관없이 응답을 해준다. 이는 시스템 콜을 받자마자 제어권을 다시 유저에게 넘겨 준다는 것이기에, 유저 프로세스는 IO 가 완료 되기 전에도 다른 작업을 수행할 수 있음을 의미한다. +) 물론 일반적인 send,recv 함수 입장에서는 멈추어 있어야 할 소켓이 사용자의 명령에 의.. 2021. 12. 29.
Socket Programming 간단한 실습 C로 작성된 Socket Programming 실습 코드이다. client에서 루프백 어드레스(로컬 호스트)를 통해 소켓을 보내고 서버에서 수신하는 간단한 코드이다. 코드를 실습해보며 윈도우에서 제공하는 소켓이 어떻게 구성되었는지, 송수신과정에서 소켓이 어떤 역할을 하는지 알 수 있다. 소켓 프로그래밍에 필요한 함수, 라이브러리등은 microsoft docs에서 많은 정보를 얻을 수 있다. https://docs.microsoft.com/en-us/windows/win32/api/winsock/nf-winsock-wsastartup WSAStartup function (winsock.h) - Win32 apps Initiates use of the Winsock DLL by a process. docs... 2021. 12. 27.