이 코드는 내가 원하는 것을 정확하게 수행하고 있습니다. 제 3 자 웹 사이트에서 파일을 다운로드하고 스트리밍 할 때 각 청크가 응답에 기록되어 원본을 완전히 obsfuscate합니다. 따라서, 내가 소유하고있는 것처럼 모든 웹 사이트의 파일을 제공 할 수 있습니다.
Private Sub SendFile(ByVal url As String)
Dim stream As System.IO.Stream = Nothing
Dim bytesToRead As Integer = 10000
Dim buffer() As Byte = New Byte((bytesToRead) - 1) {}
Try
Dim fileReq As System.Net.WebRequest = CType(System.Net.HttpWebRequest.Create(url), System.Net.HttpWebRequest)
Dim fileResp As System.Net.HttpWebResponse = CType(fileReq.GetResponse, System.Net.HttpWebResponse)
If (fileReq.ContentLength > 0) Then
fileResp.ContentLength = fileReq.ContentLength
End If
stream = fileResp.GetResponseStream
Dim resp As System.Web.HttpResponse = HttpContext.Current.Response
resp.ContentType = "application/octet-stream"
resp.AddHeader("Content-Disposition", ("attachment; filename=\""" + ("mp3" + "\""")))
resp.AddHeader("Content-Length", fileResp.ContentLength.ToString)
Dim length As Integer = 1000000
While (length > 0)
If resp.IsClientConnected Then
length = stream.Read(buffer, 0, bytesToRead)
resp.OutputStream.Write(buffer, 0, length)
resp.Flush()
buffer = New Byte((bytesToRead) - 1) {}
Else
length = -1
End If
End While
Catch
stream.Close()
Finally
If (Not (stream) Is Nothing) Then
stream.Close()
End If
End Try
Response.End()
End Sub
나는 가장 좋은 방법은 기존 플래시 플레이어에서 맞춤 코드를 만들고 추가 코드로 계속해서 플레이하는 것이라고 생각합니다. 소리가 좀 어렵고 어쩌면 어쩌면. – Aristos
예. 전달 함수를 "저수준 소켓"알고리즘으로 변경하는 것은 다른 플랫폼에서 맞춤 클라이언트를 코딩하는 데 어려움을 겪을 다른 코더와 작업하고 있기 때문에 피하고 싶습니다. 그러나 현재 다른 선택의 여지가없는 것 같습니다. . –
@Aristos에 관심이 있으시면 서버 B에서 서버 A로 다운로드하고 동시에 클라이언트에 보내는 방법을 찾았습니다. –