Po przeslaniu 64kb przesylanie sie zatrzymuje (TCP)

0

Witam mam pewien problem ponieważ chciałem zrobić przesyłanie plików miedzy dwoma programami i wszystko jest fajnie jeżeli plik który chce przesłać ma poniżej 64kb ale po próbie wysłania pliku powyżej 64kb plik odbiera dane do 64kb i potem się zatrzymuje i nie wiem czemu dalsza cześć się nie chce przesłać i teraz nie wiem jak mam to do końca naprawić inie wiem do końca czym to może być spowodowane poniżej dam wam source code wysyłania i odbierania pliku miedzy programami

Server:

byte[] file = File.ReadAllBytes(path);
ns.Write(file, 0, file.Length);

Client:

//file name 
byte[] file_name_byte = new byte[client.ReceiveBufferSize];
int count_file_name = ns.Read(file_name_byte, 0, file_name_byte.Length);
string file_name = Encoding.ASCII.GetString(file_name_byte, 0, count_file_name);
//get file 
byte[] buf = new byte[client.ReceiveBufferSize];
int count = ns.Read(buf, 0, client.ReceiveBufferSize);
FileStream fs = new FileStream(file_name, FileMode.Create, FileAccess.ReadWrite);
fs.Write(buf, 0, count);
fs.Close();
1

To proste: odbierasz tylko ReceiveBufferSize bajtów.
Odbieraj w pętli, aż funkcja Read zwróci mniej niż ReceiveBufferSize.

Wyświetl sobie czy ta wartość to jest rzeczywiście 64k.

1 użytkowników online, w tym zalogowanych: 0, gości: 1