Network/Windows 4

[IOCP] AcceptEx 관련

출처 : http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=50&MAEULNo=20&no=463918&ref=463900 ----- 안녕하세요. 일단은 POSA(Pattern Oriented Software Architecture) 2 권에 등장하는 용어를 인용해 설명 하자면...Proactor 와 Reactor 라는 녀석의 개념부터 짚어보는 것이 좋을 듯 합니다. Proactor --> '선행 하는 넘'Reactor --> '후행(반응) 하는 넘' 대충... 짧은 영어 실력이지만 위와 같이 해석이 가능할 듯 합니다. 자... 그럼 IOCP를 공부하셨다고 언급하셨으니까 Overlapped I/O 에 대한 기본 개념은 알고 계시다고생각하겠습니다. IOCP..

Network/Windows 2013.01.16

윈속 확장 라이브러리 AcceptEX, GetAcceptExSockaddrs, TransmitFile

출처 : http://blog.naver.com/PostView.nhn?blogId=spaciall&logNo=50100384032 ----------------------------------------1.1.1. AcceptExAcceptEx는 서버가 클라이언트의 연결을 받아들일 때 비동기 호출(asynchronous call)로 동작하게 하여 다른 클라이언트의 연결을 즉시 받아들일 수 있도록 한다. //////////////////////////////////////////////////////////////////////////BOOLPASCALFARAcceptEx( INSOCKETsListenSocket, INSOCKETsAcceptSocket, INPVOIDlpOutputBuffer, INDW..

Network/Windows 2012.10.23

[IOCP] 10038 Error

http://www.gpgstudy.com/forum/viewtopic.php?p=27737 에서 해결방법을 찾았다. WSASend() 함수 호출 시 에러 코드 10038이 리턴되면서 리시브 에러를 출력할 때가 있는데,WSASend()함수 호출 전에 ZeroMemory(&m_overlapped, sizeof(OVERLAPPED)); 로 데이터를 한번씩 지워주자. 나는 멤버변수로 다루고 있었으므로 계속 이전 데이터가 저장되어 있다. 그리고 원래 소켓 에러 10038은 소켓 핸들이 잘못된 값으로 변경되었을 때, closesocket()으로 연결을 해제할 시에 나는 에러다.에러를 확인할 방법은 딱히 없고, closesocket을 하기 전에소켓이 INVALID_SOCKET인지 아닌지 확인을 하면 된다.

Network/Windows 2012.10.06
반응형