시나리오 :알고리즘 퍼즐 - 클라이언트 파일 전송에 까다로운 서버
- 클라이언트가 서버에서 파일을 얻을 수 있습니다. 그는 서버에 요청을 보내고 파일 다운로드를 시작할 수 있습니다. 이것은 우리가 원하는 것이 아닙니다. 클라이언트는 많은 양의 데이터를받을 수 없다는 한계가 있습니다 (예 : 파일 크기 x 바이트, 클라이언트는 최대 y 바이트 및 x >>>> y로 수신 할 수 있음). 데이터 전송에는 이러한 제한이 없습니다. 즉, 클라이언트는 원하는만큼 많은 데이터를 서버에 보낼 수 있습니다. 서버에 대한 제한도 없습니다. 파일이 이미 압축되어 있고 파일 크기를 줄일 수 없다고 가정하십시오.
- 클라이언트가 서버에서 파일의 크기를 요청하고 서버에 파일의 모든 가능한 조합을 보낼 것입니다 :
나는 하나 개 정말 나쁜 솔루션을 말할 것이다. 잘못된 조합의 경우 서버가 응답하지 않고 올바른 응답을 보낼 것입니다 (서버가 잘못된 조합의 경우 실패 응답으로 응답하는 경우 응답의 전체 크기가> = 파일 크기 자체). 몇 mB 파일을 전송하는 데 수개월이 걸리지 만 파일 대 서버 대 클라이언트 데이터 전송 비율이 가장 좋습니다.
가장 효율적인 방법은 무엇입니까? 우리는 전송 시간을 합리적으로 유지하면서 위 비율을 최대화하려고 노력하고 있습니다.
나는이 질문을 전혀받지 않습니다. 고객이 서버에게 0 번 위치에서 수신 할 금액을 알려주지 않으시겠습니까? "수신 할 금액"은 귀하의 제한 사항에 따라 수신 할 수있는 금액에 해당하는 번호입니까? 그 다음에 다음 위치로 이동하십시오. 한 번에 1K 만받을 수있는 경우 먼저 0 번 위치에서 1024 바이트를 요청한 다음 1024 바이트에서 1024 바이트를 요청하고 2048에서 1024 바이트를 요청합니다. 여기서 문제가 발생합니까? –
그리고 "가능한 모든 파일 조합을 서버에 보냄"이란 무엇을 의미합니까? 1 개의 파일이있는 경우에는 단 하나의 조합 만 있으므로 문장이 작성한 것 이외의 다른 것을 의미합니다. 몇 가지 예를 보여 주시겠습니까? –
그렇다면 클라이언트가 임의의 파일을 생성하여 서버에 업로드하고 서버가 필요한 파일과 일치하면 서버가 응답한다는 것은 무엇을 말하고 있습니까? 파일 구조 나 파일 크기에 대해 지금은 무엇이 있습니까? 왜 부분적으로 파일을 다운로드하지 않습니까? 이것은 이론적 인 질문입니까? 수신 부분이 제한적이지만 송신 부분이 왜 아닌가? – HectorLector