2009-11-12 6 views
5

winsock에서 비동기 주소 확인을 살펴보면 두 가지 옵션 중 하나만 별도의 스레드에서 gethostbyname 블록을 사용하거나 WSAAsyncGetHostByName을 사용하는 것으로 보입니다. 후자는 어떤 이유로 오버랩 된 작업 및 완료 포트/루틴 대신 창 메시지로 작업하도록 설계되었습니다.winsock의 비동기 주소 확인?

나머지 winsock API와 비슷한 방식으로 중복 된 작업과 비동기 적으로 작동하는 gethostbyname 버전이 있습니까?

+1

"어떤 이유로" 그런 식으로 설계된 것은 Winsock이 스레드 나 콘솔 모드 프로그램이없는 Win16 세계에서 만들어 졌다는 것입니다 (도스 프로그램이 있었지만 Winsock에 액세스 할 수는 없었습니다.) 모든 Windows 프로그램에는 GUI가있었습니다 , 또는 최소한 메시지 루프를 사용하여 OS가 프로그램에 문제를 말한 것입니다. 완료된 이름 조회 알림 이 메커니즘은 그 세계에서 의미가 있습니다. –

답변

1

죄송합니다. gethostbyname()에는 중복 된 버전이 없습니다.

3

불행히도 GetAddrInfoEx()에는 '일반적인'경로 (IOCP 포함)를 통한 비동기 작업을위한 모든 올바른 것들을위한 자리 표시자가 있기 때문에 결국에는 ... 불행히도,이 시간에, 워드 프로세서는 이들 모두가 NULL로 설정되어야하며 '예약 됨'으로 표시되어 있다고 말합니다. :

저는 잠시 동안 글을 쓰려고합니다 ... WSAAsyncGetHostByName은 동시 이름 해석을 허용하지 않기 때문에 내가 원하는 것을위한 기반으로는 쓸모가 없지만, 불행합니다. 다시 말하지만, IPv6를 다루지 않아서 나에게 쓸모없는 IPv6를 처리하지 않기 때문에 처음부터 다시 시작할 것입니다. 아마도 this (맥주웨어) 같은 것을 기지로 사용할 것입니다.

+0

링크 된 두 번째 라이브러리는 GPL입니다. –

+0

좋은 장소 워렌. 나는 아직까지 그것을 따라 잡지 못했다. 어제 밤에만 인터넷 검색을 했어. –

관련 문제