소켓을 통해 전송 된 100 바이트를 고려하십시오. TCP 소켓을 사용하여 recv()
을 길이 50으로 호출하면 처음 50 바이트를 얻습니다. 다시 호출하면 두 번째 50 바이트를 얻습니다. UDP 소켓을 사용하여 길이가 50 인 recvfrom()
을 호출하면 처음 50 바이트를 얻지 만 다음 데이터 그램이 수신 될 때까지 recvfrom()
블록까지 두 번째 50 - 후속 호출을 검색 할 방법이 없습니다.크기에 관계없이 전체 UDP 데이터 그램을 수신 하시겠습니까?
크기에 관계없이 전체 UDP 데이터 그램을 받고 싶다면 64k 버퍼 (UDP에서 허용하는 최대 값)를 할당해야한다는 의미입니까? UDP 소켓 connect()
이 동작을 변경합니까? 또는 UDP를 통해 작동하는 프로토콜은 일반적으로 버퍼에 사용해야하는 알려진 최대 패킷 크기를 수반합니까?