게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
본삭금) UDP통신 초보입니다. 도와주십시오
게시물ID : programmer_8993짧은주소 복사하기
작성자 : 언더월드트페
추천 : 0
조회수 : 1958회
댓글수 : 6개
등록시간 : 2015/03/30 12:07:14
옵션
  • 본인삭제금지
먼저 문제를 제시하자면,
 
클라이언트쪽에서 서버쪽으로만 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)이 없이는 보내지지 않는 상황입니다.
 
도와주십시오. 감사합니다
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호