먼저 문제를 제시하자면,
클라이언트쪽에서 서버쪽으로만 udp 통신의 형태로만 데이터를 전송 할 수 있고,
서버쪽에서는 1비트도 클라이언트로 전송 할 수 없습니다.
또한 29초는 라우터쪽(?)에서 연결이 끊겨 있다가 1초만 통신이 되는 상황인데,
1초안에 약 2메가의 데이터를 전송하면 되는 문제입니다.
서버->클라이언트 쪽으로 정보를 넘겨 주지 못하기떄문에
만약 보내야하는 데이터가 40MB처럼 크다면 문제가 생길 수 있겠는데,
2MB정도만 보내면 되기때문에 1초안에 보내면 될거 같습니다.
(전송 확인 같은거 없이..)
이론상으로는 1초에 10메가도 보낼 수 있다고는 하는데요...
소켓통신?은 잘 모르다보니 채팅프로그램 예제 같은것을 이용해서 보내고 있습니다.
TCPIP같은 경우에는 보내는 패킷의 크기를 어마어마하게 크게 20MB 정도로 잡아서 보내도 되는데,(테스트해봄)
문제는 UDP로 보내야해서 (MTU=1500) 1500바이트씩 패킷을 잘라서 보내야 한다는 것입니다.
보내야 하는 데이터가 1MB라면 약 1000바이트씩 잘라서 1000번을 보내야하는 것인데
for문이나 while 문안에 sleep(1)이 없으면 1000번이 보내지지가 않습니다.
초보라 어떻게 질문을 해야하는지도 모르겠습니다.
요약 :
한번씩 문자열(512바이트)씩 보내는 것은 잘보내지지만
1000번연속 빠르게 보내고 싶은데 sleep(1)이 없이는 보내지지 않는 상황입니다.
도와주십시오. 감사합니다