char * strResultBuffer = NULL; int bytesRecv = 0; unsigned int iByteCount = 0; while(bytesRecv != SOCKET_ERROR) { bytesRecv = 0; bytesRecv = recv(theSocket, &cByte, 1, 0); strResultBuffer = (char*)realloc(strResultBuffer, iByteCount+1); if(cByte == '\r') continue; if(cByte == '\n') { strResultBuffer[iByteCount] = '\0'; printf("!%s!\n\n", strResultBuffer); //strResultBuffer = (char*) malloc(0); continue; //memset(strResultBuffer, 0, sizeof(strResultBuffer)); } strResultBuffer[iByteCount] = cByte; iByteCount++; }