2011-11-18 1 views
3

나는 Ton의 시간 동안 Ron의 전송 속도를 가질 트래픽을 생성하고 시간 Toff 동안 아무 것도 보내지 않고 다시 반복하는 C로 UDP 클라이언트를 작성해야합니다. 따라서 교차 트래픽은 주기적입니다. 내가 겪고있는 문제는 클라이언트가 일정한 속도로 론을 보내는 방법입니다. 나는 sendto와 usleep 함수를 사용하는 것에 대해 생각했다. 그러나 sendto에는 데이터를 전송할 속도를 지정할 수있는 방법이 없습니다.일정한 UDP 트래픽을 생성하는 방법은 무엇입니까?

미리 감사드립니다.

답변

4

글쎄, sendto는 전송할 데이터의 양을 지정할 수있게하고, usleep은 보내는 빈도를 제어하는 ​​데 사용할 수 있으므로 두 개 사이에서 요금을 제어 할 수 있습니다.

예를 들어 sendto를 호출하여 1kb의 청크를 보내고 sendto() 호출간에 1/10 초 동안 일시 중지 (usleep)하면 초당 10kb의 속도로 전송됩니다.

+0

하지만 시간도 좀 걸리지 않습니까? 따라서 sendto를 1kb 청크로 호출하고 1/10th 초 동안 일시 중지 (usleep)하면 초당 10kb보다 느린 속도로 전송하고 있습니까? – mirandaio