|
여기에서 buf의 메모리만큼 미리 프로그래머가 확보를 해 놓은 상태이어야 합니다.
송신측에서 정확히 얼마만큼 보낼지 모르는 가정하라고 하면
다음과 같이 받고 처리하고 받고 처리하고를 반복해야 합니다.
다음 예제에서는 단순히 file에 write하도록 되어 있습니다.
#define LENGTH 1024
FILE *fp;
char buf[LENGTH];
int i;
fp = fopen("test.pck", "wb");
while (true) {
len = recv(s, buf, LENGTH, ...);
if (len <= 0) break;
fwrite(buf, len, 1, fp);
}
fclose(fp);
모라 님이 쓰신 글 :
: 어 이거 질문을 올렸는데..지워진거 같군요.(왜지..?^^;)
:
: recv(int s, void *buf, size_t len, int flags);
:
: recv함수로 자료를 받을시 공간 할당을 해야하지 않나요?
:
: 저번 질문에 2기가도 받을 수 있다고 했는데...패킷 받을시 void *buf를
:
: 포인터로 받음 되겠지만, size_t len의 문제는 어떻하죠?
:
: 그냥 포인터 그 자체만 공간 할당하면 되는건가...
:
: 좋은 답변 바랍니다.
:
:
:
: ps winsock으로 자료 전송 구현한거 찿아요~
|