簡體   English   中英

通過服務器和客戶端之間的TCP連接發送和接收文件

[英]Sending and receiving files over TCP connection between server and client

首先,我是這個主題的新手,所以我在Internet上進行了搜索,發現了一些有關TCP和套接字連接的信息。 我在智能手機上有一個充當服務器的應用程序,還有一個作為客戶端的WinForms應用程序。 現在,我在我的應用程序中嘗試了此操作:

s.SendFile(outputFile);

其中outputfile是mp3格式的音頻文件,s是Socket。

在客戶端,我有一個TCP連接:

 using (var stream = client.TcpClnt.GetStream())
                using (var output = File.Create(Path.Combine(Directory.GetCurrentDirectory(), "Audio.mp3")))
                {
                    // read the file in chunks of 1KB
                    var buffer = new byte[1024];
                    int bytesRead;
                    while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) > 0)
                    {
                        output.Write(buffer, 0, bytesRead);
                    }
                }

最后,我只收到一個23kb大且無法打開的音頻文件。 我在這里做錯了什么?

編輯:

我也嘗試過

 Socket socket = TcpClnt.Client;

接着

 while ((bytesRead = socket.Receive(buffer, 0, buffer.Length, SocketFlags.None)) > 0)

該文件仍為23kb(也許可以。我不知道),但該文件始終損壞,無法通過媒體播放器打開。

將此文件用於音頻文件:

Stream output = new StreamWriter(outputfilename,true)
Mp3FileReader reader = new Mp3FileReader(file);
Mp3Frame frame;
while ((frame = reader.ReadNextFrame()) != null)
{
output.Write(frame.RawData, 0, frame.RawData.Length);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM