Hallo,
ich möchte ein Byte Array in 2048 (kann auch geändert werden) Byte-Blöcken versenden.
Folgendes Code Schnipsel hab ich mir dafür ausgedacht, jedoch funktioniert dieses nur solange die Datei welche in Bytes zerlegt wurde kleiner ist als der Buffer (2048 Bytes).
Wenn Sie größer ist, kommt eine Array Out Of Bound Exception oder so ähnlich. Ich weiß auch was dies bedeutet, aber ich verstehe nicht wieso der Fehler kommt.
Das Buffer-Array ist 2048 bytes groß. Ich kopiere meiner Meinung auch nie mehr bytes rein als eigentlich möglich. Könntet ihr da mal drüber schauen?
Danke im Voraus
ich möchte ein Byte Array in 2048 (kann auch geändert werden) Byte-Blöcken versenden.
Folgendes Code Schnipsel hab ich mir dafür ausgedacht, jedoch funktioniert dieses nur solange die Datei welche in Bytes zerlegt wurde kleiner ist als der Buffer (2048 Bytes).
Wenn Sie größer ist, kommt eine Array Out Of Bound Exception oder so ähnlich. Ich weiß auch was dies bedeutet, aber ich verstehe nicht wieso der Fehler kommt.
Das Buffer-Array ist 2048 bytes groß. Ich kopiere meiner Meinung auch nie mehr bytes rein als eigentlich möglich. Könntet ihr da mal drüber schauen?
C#-Quellcode
- FileStream fs = new FileStream("test.png", FileMode.Open);
- byte[] buffer = new byte[2048];
- int offset = 0;
- int bytesRead = fs.Read(buffer, offset, buffer.Length);
- while (true)
- {
- mSocket.Send(buffer, offset, bytesRead, SocketFlags.None);
- offset += bytesRead;
- if (offset >= fs.Length)
- break;
- int remaining = (int)fs.Length - offset;
- if(remaining > buffer.Length)
- bytesRead = fs.Read(buffer, offset, buffer.Length);
- else
- bytesRead = fs.Read(buffer, offset, remaining);
- }
Danke im Voraus