c언어 질문이있습니다 for문 관련(완료)

lamu의 이미지

맨 아래 for문에서
for (i = 0; i < 3; i++)
{
printf("%s %d %s\n",n[i].name, n[i].age, n[i].sex);
}
조건을 3이 아니라 데이터베이스에 있는 저장된 데이터만큼 불러오게 조건식을 만들고 싶은데 어떻게 해야 하나요?
sizeof(n), sizeof(n[i])이런거 다 해봤는데 안되더라구요...

익명 사용자의 이미지

클라이언트 코드만 있군요. 서버는 어딨죠?

데이터베이스에 저장된 데이터가 몇 개가 있는지는 서버만이 알겠죠. 클라이언트가 그 정보를 알려면 서버가 알려 줘야 합니다. 어떻게 알려주는지는 protocol에 따라 다르겠지요.

recv는 실제로 전송받은 데이터의 바이트 수를 반환하니 그걸 sizeof(struct list)으로 나눠서 몇 개의 list를 받았나 알 수도 있지만, 별로 권장하지 않습니다. 서버가 데이터를 얼마나 보내든 recv 한 번에 모두 받아올 수 있다는 보장이 없거든요.