ich hab ein kleines Programm geschrieben, womit ich eine Datei zu einem andren PC, der das Programm auch ausgeführt hat senden kann. Das versenden der Datei funktioniert auch, aber wie ist es zB möglich, davor noch den Namen oder die Endung der Datei, die gesendet wird zu übertragen, ohne, dass es mit in die Datei geschrieben wird?
Momentane Funktion zum Datei empfangen:
Code:
listener = new TcpListener(IPAddress.Any, 9574); listener.Start(); TcpClient c = listener.AcceptTcpClient(); NetworkStream stream = c.GetStream(); saveFileDialog1.ShowDialog(); byte[] empfang = new byte[1024]; BinaryWriter bw = new BinaryWriter(File.Create(saveFileDialog1.FileName.ToString())); int j = 1; while((j > 0) && (c.ReceiveBufferSize >= 1024)) { j = stream.Read(empfang, 0, empfang.Length); bw.Write(empfang); } if (c.ReceiveBufferSize > 0) { stream.Read(empfang, 0, empfang.Length); bw.Write(empfang); } bw.Close(); stream.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); }
Code:
try { client = new TcpClient(ip.ToString(), port); netStream = client.GetStream(); byte[] data = File.ReadAllBytes(datei); BinaryWriter bwr; int i = 0; bwr = new BinaryWriter(netStream); while (data.Length >= 1024*(i+1)) { bwr.Write(data, i*1024, 1024); i++; } bwr.Write(data, i*1024, data.Length-i*1024); netStream.Close(); client.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); }
Edit:
Habs jetzt hinbekommen, aber hab ein neues Problem. Wollte das Senden und Empfangen jetzt in einem extra Thread laufen lassen und jetzt macht er am Punkt, wo sich eigendlich ein Fenster zur Auswahl des Speicherorts für die Datei öffnen sollte nicht mehr weiter. Kennt jemand das Problem?