Ich versuche, eine Datei vom TCP-Client zum Listener zu senden. Alles funktioniert, aber nachdem die Datei gesendet wurde, trennt der Client die Verbindung zum Server. Hier ist der Code, den ich zur Zeit für die Kunden mit:Trennen der Verbindung vom Server nach dem Senden der Datei
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)
{
}
}
und für den Server:
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);
}
}
Die '} {' Klammern im Server-Code oberhalb von 'Fs.Close();' können für einen Start nicht korrekt sein. – Jim