Try the following modifications
public void sendfile(FileInfo src,NetworkStream ns)
{
network = ns;
this.data = new byte[packetsize];
fs = new FileStream(src.FullName, FileMode.Open, FileAccess.Read);
filesize = fs.Length;
int sum = 0;
while (sum < filesize)
{
int count = filesize - sum;
if (count > packetsize)
count = packetsize;
count = fs.Read(data, 0, count); network.Write(data, 0, count); sum += count;
}
network.Flush();
}
public void receive(string src, NetworkStream ns,long filesz)
{
network = ns;
filesize = filesz;
fs = new FileStream(src, FileMode.Create, FileAccess.Write);
this.data = new byte[packetsize];
int sum = 0;
while (sum < filesize)
{
int count = filesize - sum;
if (count > packetsize)
count = packetsize;
count = network.Read(data, 0, count);
fs.Write(data, 0, count);
sum += count;
}
}