【发布时间】:2016-09-03 03:28:26
【问题描述】:
首先,我对这个话题很陌生,所以我在互联网上搜索了一下,发现了一些关于 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(也许这没问题。我不知道)但文件总是损坏,无法被媒体播放器打开。
【问题讨论】:
-
在 while 循环之后尝试了 output.Close() 但这没有帮助
标签: c# tcp xamarin server client