함수1
int recvn(SOCKET s, char *buf, int len, int flags)
{
int received;
char *ptr = buf;
int left = len;
while(left > 0){
received = recv(s, ptr, left, flags);
if(received == SOCKET_ERROR)
return SOCKET_ERROR;
else if(received == 0)
break;
left -= received;
ptr += received;
}
return (len - left);
}
본문에선
int numtotal = 0;
while(1){
retval = recvn(client_sock, buf, BUFSIZE, 0);
if(retval == SOCKET_ERROR){
err_display("recv()");
break;
}
else if(retval == 0)
break;
else{
fwrite(buf, 1, retval, fp);
if(ferror(fp)){
perror("파일 입출력 오류");
break;
}
numtotal += retval;
}
}
이런식 으로 컨트롤
쉽지?
윈도우 소켓인가 햇갈려
일단 해볼게요형