【发布时间】:2017-03-05 07:54:02
【问题描述】:
我正在尝试将文件从 TCP 客户端发送到侦听器。它一切正常,但在发送文件后,客户端与服务器断开连接。这是我目前用于客户端的代码:
public static void SendFile(FileInfo file)
{
try
{
long size = file.Length;
using (NetworkStream ns = client.GetStream())
{
using (FileStream Fs = new FileStream(file.FullName, FileMode.Open, FileAccess.Read))
{
int num;
byte[] buffer = new byte[Fs.Length];
while ((num = Fs.Read(buffer, 0, buffer.Length)) != 0)
{
ns.Write(buffer, 0, num);
}
Fs.Close();
ns.Close();
}
}
FileInfo p_c = new FileInfo(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\destfile.bin");
p_c.Delete();
} catch(Exception ex)
{
}
}
对于服务器:
using (NetworkStream ns = new NetworkStream(current))
{
using (FileStream Fs = new FileStream(full_path, FileMode.OpenOrCreate, FileAccess.Write))
{
while ((RecBytes = ns.Read(RecData, 0, RecData.Length)) > 0)
{
Fs.Write(RecData, 0, RecBytes);
totalrecbytes += RecBytes;
}
{
Fs.Close();
ns.Close();
Console.WriteLine("File received. Path: {0}", full_path);
}
}
【问题讨论】:
-
服务器代码中的
}{括号,上面的Fs.Close();不能正确开始。
标签: c# tcp client listener sendfile