소켓에서 데이터를 받아오기 전에 ioctl의 FIONREAD로
얼마만큼의 데이터를 읽을 수 있는지 알 수 있습니다.
그렇다면 그 데이터크기만큼 recv 하면 확실히 받아 오는 것입니까?
즉, for/while 따위로 다 받아질 때까지 삽질 안 해도 되는 것인지요?
[code:1]
unsigned long nRead;
int nRes;
char cBuff[SOMEBIGNUMBER]
nRes=ioctl(csock, FIONREAD, &nRead);
...
recv(csock, cBuff, nRead, 0); // HERE!!
// recv로 제대로 받을 수 있을지 알 수 없기 때문에
// 보통 for/while을 써서 원하는 데이터만큼 다 받기