190711-2 - SELECT 모델 SELECT 모델 쓰레드 하나로 다중처리를 할 수 있다. // 소켓 정보 저장을 위한 구조체 struct SOCKETINFO { SOCKET sock; //소켓번호 char buf[BUFSIZE+1]; //버퍼 int recvbytes; //받은바이트 int sendbytes; //보낸바이트 }; 소켓 마다 독립적으로 관리하기 위해서 구조체 정의. SOCKETINFO *SocketInfoArray[FD_SETSIZE]; // 소켓정보포인터를 저장하는 배열 (FD_SETSIZE : 현재 64개) // 넌블로킹 소켓으로 전환 u_long on = TRUE; retval = ioctlsocket(listen_sock, FIONBIO, &on); if(retval == SO..
190711 - Study 비동기 IO가 사실상 Overlapped(중첩된) IO나 다름없다. IO 중첩 : 하나의 쓰레드에서 둘 이상 영역으로 데이터를 전송. 윈도우에서는 IO가 완료된 상황 확인방법에 포커스를 맞춘다. 넌-블로킹 모드로 IO를 하면 이후 완료결과를 별도로 확인하는 작업이 필요하다. SOCKET WSAAPI WSASocketA( int af, //프로토콜 체계 정보 int type, // 데이터 전송방식 int protocol, LPWSAPROTOCOL_INFOA lpProtocolInfo, GROUP g, // 예약변수 DWORD dwFlags ); ● Overlapped IO 소켓 생성 WSASocketA(PF_INET, SOCK_STREAM, 0, NULL, 0, WSA_FLAG_..