Zhen
Lt. Junior Grade
- Registriert
- Aug. 2009
- Beiträge
- 299
Hallo Leute,
ich spiele mich momentan bisschen mit dem NetworkStream in C# rum
Allerdings bin ich da auf etwas aufmerksam geworden das irgendwie komisch ist...
Also es ist so, wenn ich z.B. ein Bytearray habe das 10240 Bytes groß ist und es verschicken will (aber nicht alles auf einmal sondern z.B. in einer Schleife immer nur 1024 Bytes)
Beispiel:
auf der anderen Seite empfange ich die Bytes genauso in einer Schleife. Gelesen werden auch immer 1024 Bytes.
Nun ist aber das Problem, dass z.B. sich der Hashwert dieser Bytes ändert und wenn ich sie verschlüsselt hatte und sie auf der anderen Seite wieder entschlüsseln will kommt folgende Exception:
Die Exception und das Problem kann umgangen werden, wenn ich z.B. auf der SENDER-Seite folgendes schreibe:
jedoch ist das nicht unbedingt die beste Lösung, wenn ich z.B. einen Fortschrittsbalken einbauen will oder sowas...
Hoffe ihr kennt das eine Lösung
ich spiele mich momentan bisschen mit dem NetworkStream in C# rum
Allerdings bin ich da auf etwas aufmerksam geworden das irgendwie komisch ist...
Also es ist so, wenn ich z.B. ein Bytearray habe das 10240 Bytes groß ist und es verschicken will (aber nicht alles auf einmal sondern z.B. in einer Schleife immer nur 1024 Bytes)
Beispiel:
PHP:
int sentBytes = 0;
int bytesToSend = 1024;
int totalBytes = puffer.Length //entspricht 10240 Bytes
do {
networkStream.Write(puffer, 0, bytesToSend);
sentBytes += bytesToSend;
while(sentBytes < totalBytes);
auf der anderen Seite empfange ich die Bytes genauso in einer Schleife. Gelesen werden auch immer 1024 Bytes.
Nun ist aber das Problem, dass z.B. sich der Hashwert dieser Bytes ändert und wenn ich sie verschlüsselt hatte und sie auf der anderen Seite wieder entschlüsseln will kommt folgende Exception:
Code:
CryptographicException
Zeichenabstände sind ungültig und können nicht entfernt werden.
Die Exception und das Problem kann umgangen werden, wenn ich z.B. auf der SENDER-Seite folgendes schreibe:
PHP:
networkStream.Write(puffer, 0, puffer.Lenght);
jedoch ist das nicht unbedingt die beste Lösung, wenn ich z.B. einen Fortschrittsbalken einbauen will oder sowas...
Hoffe ihr kennt das eine Lösung