1
비 차단 클라이언트 소켓을 구현할 수 있습니까? 내가 사용하는 시도리눅스 클라이언트 소켓 : 연결하기 전에 O_NONBLOCK을 설정할 수 없습니까?
sockfd = socket(AF_INET, SOCK_STREAM, 0);
fcntl(sockfd, F_SETFL, O_NONBLOCK);
connect(sockfd,(struct sockaddr *) &serv_addr,sizeof(serv_addr));
하지만 응용 프로그램이 connect
문에 도달 할 때, 다음과 같은 오류가 존재합니다 ', 즉 아무튼
ERROR connecting: Operation now in progress
내가 완전히 비 블로킹 소켓을 만들 필요가 심지어 TCP 핸드 셰이크를 기다릴 필요가 없습니다. 표준 소켓 함수를 사용하여이 작업을 수행 할 수 있습니까? 아니면 스레딩 작업에 들어가야합니까?
어떤 기능을 사용해야합니까? –
선택 또는 폴링을 찾아야합니다. –
알아 냈어 :'connect()'함수는 비 블로킹 소켓에 연결하려고 시도 할 때'EINPROGRESS' 에러를 반환하지만, 그 특별한 에러는 무시되어야한다. –