2013-03-05 10 views
1

청취 소켓이 무한 루프에있는 경우 accept 함수를 실행하기 전에 연결이 설정되었는지 여부를 알 수있는 방법이 있습니까? 내가 전에 몇 가지 작업을 수행 할 수 있도록하려면 :Winsock 수신 및 수신 함수 (C++)

sock_connection[0] = accept(sock_listen, (SOCKADDR*)&Address, &AddressSize) 

특히, 내 sock_connection를 볼 수 [0] 변수는 배열입니다. 자, 실제로 연결을 받아들이 기 전에이 배열을 탐색 할 수 있기를 원합니다. 이제 0이 아니라 배열에서 사용 가능한 지점을 반환해야합니다.

그렇다면 수락을 실행하기 전에 연결을 감지 할 수있는 방법이 있습니까?

답변

0

동적 컨테이너를 사용하기가 쉽지 않습니까? 같은

뭔가 :

vector<int> socket_pool; 
int connection = accept(sock_listen, (SOCKADDR*)&Address, &AddressSize); 

if (connection > 0) 
    socket_pool.push_back(connection); 
+0

당신은 스레드가 선택 호출에 차단되면 해당 소켓에 IO 이벤트를 서비스 할 수 없습니다. –

+0

@infact 소켓 차단과 함께 시도하지 않았지만,이 전략을 비 차단 소켓 서버에서 사용하고 잘 작동합니다. 댓글 주셔서 감사합니다. – Pedrom