udp 는 tcp랑 달라서 흐름제어가 없어서... 제가 버퍼를 2048로 잡고.. 한 50메가정도의 파일을 전송햇더니.. 중간에 항상 멈추더군요.. 아마도 버퍼가 오버플로우가 나서 그런것 같은데.. 이런 오버플로우를 없에고. udp의 장점을 살려서 빨른 전송을 가능하게 하고 싶은데... 어떤 방법이 있는지 알고 싶습니다.
UDP 프로토콜은 전송시 상대편에게 얼마만큼이 전송되는지 파악할 수 없습니다. 따라서 보통 파일전송과 같은 것은 UDP를 사용하지 않는 것이 좋습니다. 간단한 흐름제어를 하더라도 괜히 TCP에 비해서 복잡해 지기 때문입니다.
UDP는 어느정도 손상을 감수하는 자잘한 데이터의 버스트전송에 적합한 프로토콜이이 큰 파일을 보내는데는 사용할바가 못됩니다.
만일 블럭킹을 말씀한다면 기본적으로 UDP 리시브하는 쪽은 항상 열어놓고 기다리기 때문입니다.
======================================== * The truth will set you free.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
멈춘다는 것이 그냥 블럭킹 되는 것을 말씀하시는지?
UDP 프로토콜은 전송시 상대편에게 얼마만큼이 전송되는지 파악할 수 없습니다. 따라서 보통 파일전송과 같은 것은 UDP를 사용하지 않는 것이 좋습니다. 간단한 흐름제어를 하더라도 괜히 TCP에 비해서 복잡해 지기 때문입니다.
UDP는 어느정도 손상을 감수하는 자잘한 데이터의 버스트전송에 적합한 프로토콜이이 큰 파일을 보내는데는 사용할바가 못됩니다.
만일 블럭킹을 말씀한다면 기본적으로 UDP 리시브하는 쪽은 항상 열어놓고 기다리기 때문입니다.
========================================
* The truth will set you free.
댓글 달기