Agilent Technologies E4406A VSA Satellite Radio User Manual


 
Chapter 3 159
Programming Examples
Using C Programming Over Socket LAN
resultBytes = 0;
/* Loop until we get all the bytes we requested. */
/* Each call seems to return up to 1457 bytes, on HP-UX 9.05 */
do {
int rcount;
rcount = recv(sock, result, (int)numBytes, 0);
resultBytes += rcount;
result += rcount; /* Advance pointer */
} while ( resultBytes < numBytes );
/************************************************************
* For LAN dumps, there is always an extra trailing newline
* Since there is no EOI line. For ASCII dumps this is
* great but for binary dumps, it is not needed.
***********************************************************/
if (resultBytes == numBytes)
{
char junk;
count = recv(sock, &junk, 1, 0);
}
}
else
{
/* indefinite block ... dump til we can an extra line feed */
do
{
if (recv_line(sock, result, maxLength) == NULL) break;
if (strlen(result)==1 && *result == \n) break;
resultBytes += strlen(result);
result += strlen(result);
} while (1);
}
}
else
{
/* ASCII response (not a binary block) */