2011-03-15 4 views
1

.NET에서 가장 빠른 방법으로 한 서버에서 여러 클라이언트 (인터넷 사용)로 파일을 전송해야합니다. .NET 또는 VB.NET에서 사용할 수있는 전송 프로토콜의 종류는 무엇입니까? 그러면 매우 짧은 시간에 파일이 전송됩니까? FTP를 사용해 보았지만 인증, 핸드 셰이 킹 등이 필요하기 때문에 속도가 느립니다. 내가 알고 싶은 것은 .NET에서 서버와 여러 클라이언트간에 가장 빠른 방식으로 파일을 전송하는 옵션입니다. zeromq와 같은 라이브러리를 사용할 수 있습니까?.NET을 사용한 빠른 파일 전송

+1

일반 ['Socket'] (http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspx)? 아니면 당신에게 낮은 수준입니까? –

+1

그 질문에 대한 대답은 큰 파일이나 작은 파일을 많이 보낼지 여부에 달려 있다고 생각합니다. –

+0

나는 많은 작은 파일을 보낼 것이다. – bharatm

답변

2

TCP 연결 또는 UDP 연결을 사용할 수 있습니다. UDP 프로토콜은 빠르지 만 매우 신뢰할 수 없으므로 스트리밍 비디오에는 적합하지만 나중에 열어야하는 파일은 보내지 않습니다.

하지만 평범한 TCP 연결은 적어도 내 경험으로는 FTP보다이 아니며 이 아닙니다. 신뢰성을 원한다면 FTP를 사용하는 것이 가장 좋습니다.

+1

대용량 파일이 많지 않은 경우 많은 수의 작은 파일의 경우 FTP가 빠릅니다. – CodesInChaos

0

우선 Ilya가 제안한 것처럼 TCP 또는 UDP가 필요한지 결정해야합니다. 다음을 수행하십시오.

.net.에서 네트워크 스트림 (서버)에 파일 스트림을 복사 할 수 있습니다. 그리고 네트워크 스트림에서 파일 스트림 (클라이언트)까지. 작은 파일이 많다면 모든 파일을 하나의 패키지로 압축하여이 파일을 전송할 수 있습니다.

패키지가 클라이언트로 전송 된 후 체크섬 (예 : MD5)을 확인하고 압축을 풀 수 있습니다.