UDP (C)에서 작은 응용 프로그램을 구현하고 있습니다. 서버는 주어진 파일로부터 일정량의 청크 (예 : 100 바이트/호출)의 데이터를 클라이언트에 보냅니다. 클라이언트는 파일을 다운로드하여 어딘가에 저장합니다. catch는 클라이언트가 읽기/호출 할 바이트 수를 나타내는 매개 변수를받을 수 있다는 것입니다.
내 문제는 서버가 100 바이트/호출을 보내고 클라이언트가 15 바이트/호출 만 읽도록 설정되어있는 경우입니다. 다른 85 바이트는 메시지가 UDP 큐에서 제거되기 때문에 손실됩니다.UDP - 청크로 대기열에서 데이터를 읽습니다.
메시지를 완전히 읽을 때까지 대기열에서 메시지를 제거하지 않고 청크로 읽을 수있는 방법이 있습니까?
클라이언트 서버 프로토콜을 변경하여 두 끝이 서로를 혼동하지 않게하십시오. – Vorsprung
위대할지 모르지만 프로토콜을 작성하지 않았습니다. 나는 내 컴퓨터 네트워크 코스와 프로토콜에 주어진이 작은 응용 프로그램을 할 수있어. –
다른 방법으로 말씀 드리겠습니다. "서버가 100 바이트/콜을 전송하고 클라이언트가 15 바이트/콜만을 읽도록 설정되면"한 쪽 또는 다른 쪽을 제어해야합니다. 클라이언트와 서버가 잘못된 바이트 수를 읽도록 설정하지 마십시오! – Vorsprung