tcp이용한 소켓통신에서 전송진행율을 %로 계산하는 방법에 대해...
글쓴이: obshaha / 작성시간: 금, 2011/03/04 - 1:11오전
tcp를 사용한 간단한 파일전송 프로그램을 짜고 있습니다.
제가 알고 싶은건.. 예를 들어 100mb 짜리 파일을 1mb 단위로 전송을 한다고 치면..
10mb를 보냈을때 파일전송이 10% 완료된거지 않습니까?
위처럼 10% 단위로 파일전송 완료(?) 된것을 출력하고 싶습니다.
제가 생각해봤을때는 전체크기의 0.1을 곱한 값을 if문을 통해 비교하려고 하니.. 문제가..
꼭 0.1을 곱한값과 같아진다는 보장도 없고.. 몇byte씩 보낼지에 따라..
그리고 조건을 0.1곱한값(10%)보다 크거나 같게 주게 되면 처음에 10%는 출력이 되더라도..
10%단위씩 찍어야 되니까 20%가 되기전.. 그러니까 10.1~19.9% 사이의 값은 다 10%로 출력이 되겠더라고요..
딱히 위 생각말고는 어떻게 해야될지 뾰족한 수가 떠오르질 않아 질문드립니다.
어떻게 해야 파일을 10%씩.. ex) 10%완료 / 20%완료 / 30%완료... 이런식으로 출력되게 할 수 있을까요?
읽어주셔서 감사드립니다.
Forums:
그러니까, 원하는게 10.1~19.9% 사이의 값이
그러니까, 원하는게 10.1~19.9% 사이의 값이 10%로 출력되길 원하는 건지, 20%로 출력되길 원하는 건지,아니면 그 값 그대로 출력되길 원하는 건지 모르겠네요
질문하신 내용 그대로라면, "100*전송량/전체용량" 값을 출력하면 되는 건데, 10의 자리에서 올릴 건지 버릴 건지 반올림할건지만 결정하시면 됩니다.
피할 수 있을때 즐겨라! http://melotopia.net/b
(int)(10*전송량/전체용량)*10 하면될듯
(int)(10*전송량/전체용량)*10 하면될듯 싶은데요.
고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"
댓글 달기