My startpost-version is full of several mistakes. Here the now 100% working version:
Client:
public void sendFileToServer(String filename) {
var a = File.OpenRead(filename);
FileInfo fo = new FileInfo(filename);
long filesize = fo.Length;
// Send filename to server
sw.WriteLine("Filename: " + filename);
sw.Flush();
// Send filesize to server
sw.WriteLine("Filesize: " + filesize);
sw.Flush();
// Write file into fileBytes-Array and sends it in parts
Byte[] fileBytes = new Byte[1024];
long count = filesize;
while (count > 0) {
int recieved = a.Read(fileBytes, 0, fileBytes.Length);
a.Flush();
nws.Write(fileBytes, 0, recieved);
nws.Flush();
count -= recieved;
}
a.Close();
nws.Close();
sw.Close();
sr.Close();
clientConnection.Close();
}
Server:
public void recieveFile() {
NetworkStream nws = clientconnection.GetStream();
StreamReader sr = new StreamReader(nws);
StreamWriter sw = new StreamWriter(nws);
// Recieve filename
string filename = sr.ReadLine().Remove(0, 10);
// Recieve filesize
long filesize = Convert.ToInt64(sr.ReadLine().Remove(0, 10));
long count = filesize;
Byte[] fileBytes = new Byte[1024];
var a = File.OpenWrite(filename);
while (count > 0) {
int recieved = nws.Read(fileBytes, 0, fileBytes.Length);
nws.Flush();
a.Write(fileBytes, 0, recieved);
a.Flush();
count -= recieved;
}
nws.Close();
a.Close();
sr.Close();
sr.Close();
clientconnection.Close();
}