루프에서 recv
함수를 사용하여 네트워크 데이터를 수신하지만 데이터 중간 루프 수신을 중지한다고 가정 해 보겠습니다. 루프를 깰 수는 있지만 데이터 수신을 중단하는 매우 깨끗한 방법처럼 보이지 않습니다.어떻게하면 recv 루프에서 빠져 나갈 수 있습니까?
데이터 수신을 완전히 멈추는 방법이 있습니까? 아니면 그냥 루프를 깨고 있습니까? 그것은 HTTP GET/POST 요청입니다. 루프에서 실연
do {
nDataLen = recv(mySocket, data, BUFFSIZE, 0);
if (nDataLen > 0)
{
/* Process Data */
// I'd like to break out of the loop
// if something is found when processing the data
// But, I want to do this cleanly.
}
} while (nDataLen != 0);
사용중인 코드를 볼 수 있습니까? –
"데이터 수신 중지"란 무엇을 의미합니까? recv를 사용하면 수신 된 네트워크 버퍼에서 데이터를 가져 오거나 일부 데이터가 수신 될 때까지 대기 할 수 있습니다. recv를 호출하지 않는다고해서 데이터가 수신되지 않는다는 의미는 아닙니다. 그것은 여전히 어딘가에 시스템 버퍼에 들어갑니다. –
@VaughnCato 루프를 해독하기 위해 어떤 상처를 주겠습니까? 데이터가 어딘가에 시스템 버퍼에 있으면 얼마나 오래 머물러 있습니까? – Josh