繁体   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