Bulk data를 보낼때의 send()와 recv()호출은 어떻게 해야 합니?
글쓴이: indizarm / 작성시간: 월, 2003/10/06 - 12:55오후
Bulk data를 보낼때의 send()와 recv()호출은 어떻게 해야 합니까?
winsock에서의 send()는 1번 호출하면 내부로는 어떻게 구현이
되어있는지는 몰라도 사용자가 원하는만큼의 데이터를 전송하게
됩니다.
따라서 send() : recv()의 비율이 1 : 多 였습니다.
그런데 linux에서 같은 방식으로
보내는 쪽: send(); 받는 쪽: while(받은 양 < 데이터의 크기) { recv(); strcat(buf, 받은 데이터); 받은 양 += 이번에 받은 양; }
하니까 데이터의 크기는 맞는데, 실제로 데이터가 정확하게
들어가지는 않더군요.
보내는 쪽: while(보낸 양 < 데이터 크기) { send(); 보낸 양 += 이번에 보낸 양. 보낼 위치 += 이번에 보낸 양. }
이렇게 해야 하는 것입니까?
Forums:
strcat(buf, 받은 데이터); 받은데이터에 \0가 있을경우 문
strcat(buf, 받은 데이터);
받은데이터에 \0가 있을경우 문제가 발생합니다.
확인해보세요.
memcpy계열의 함수를 사용하세요.
그나저나 백수 언제 탈출하냐... ㅡㅡ; 배고파라.
음 참고로[code:1]char buf[1024];
음 참고로
이렇게 넘기면 좀 더 효율적입니다.
그나저나 백수 언제 탈출하냐... ㅡㅡ; 배고파라.
답변 감사합니다.두번째 방법이 아주 죽이는데요. ^_^
답변 감사합니다.
두번째 방법이 아주 죽이는데요. ^_^
What a Cool Days!!!
alsong님 말대로 하니까 아주 정확히 들어가는군요.감사합니다.
alsong님 말대로 하니까 아주 정확히 들어가는군요.
감사합니다.
What a Cool Days!!!
댓글 달기