2017-04-07 1 views
0

저는 여러 파일의 내용을 클라이언트에 전달하는 파일 서버 프로그램 (C로 작성) 작업을하고 있습니다. 파일 서버와 클라이언트 시스템 모두 Linux를 실행합니다. 서버와 클라이언트간에 파일을 전송할 시간을 줄이고 싶습니다.파일 서버 및 소켓

현재 클라이언트 당 소켓 하나를 사용하여 파일 전송에 소켓을 사용하고 있습니다. 클라이언트 당 2 개의 소켓을 사용하려면 파일 전송 시간이 줄어 듭니다? 하드웨어는 기계에 대한 물리적 경로가 하나만있는 것과 같습니다.

감사합니다. Bob

답변

0

병목 현상에 따라 다릅니다. 일반적으로 2 개 이상의 소켓은 전송 속도를 향상시키지 않습니다. 모든 것이 올바르게 구현되면 병목 현상이 네트워크 자체처럼 발생합니다. 가장 먼저 떠오르는 것은 소켓 보내기/받기 버퍼의 크기입니다. 종종 시스템 기본값이 매우 작은 숫자 (예 : 8KB)이기 때문입니다. 서버에서 송신 버퍼를 증가시키고 클라이언트에서 버퍼를 수신하십시오.

TCP를 사용하는 경우 이미 해당 사용 사례에 맞게 조정되어 있습니다. 여전히 알려진 몇 가지 문제가 있습니다. 장거리에서 지방 채널을 사용합니다. 환경/구현에 대한 더 많은 정보를 제공하면 더 나은 답변을 얻을 수 있습니다.