2011-02-02 5 views
0

getaddrinfo 함수를 사용하여 도메인 이름 인 OS = linux, language = C++의 IP 주소를 가져옵니다. 이더넷 케이블을 뽑았을 때 함수가 30 초 동안 스레드를 차단할 수 있음을 알았습니다 (기능은 30 초 이내에 반환되지 않습니다). 나에게는 너무 오랜 시간이야. 해당 기능에 대한 시간 초과를 설정하거나 기능 또는 다른 아이디어의 실행을 중단 할 수 있습니까?함수 getaddrinfo 문제

감사 EB

답변

2

glibc는 (예를 들면 차단되지 않음) 비동기 이름 조회를 허용하는 getaddrinfo_a을 provies.

더 이식 가능하게는 adnsc-ares과 같은 다른 비동기 해결 프로그램이 있습니다. 또는 다른 스레드에서 리졸버를 실행할 수도 있습니다.