tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
0
ZUGRIFFE
232
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Fridulin Fridulin ist offline Mitglied Brokat
    Registriert seit
    Dec 2004
    Beiträge
    309
    Hallo,

    ich bräuchte mit einer Client / Server Anwendung Hilfe.

    Ich möchte den Stream verschlüßeln mit CryptStream, den Stream senden ist kein Problem, nur der Empfang bzw. das Entschlüßeln. Ich kann es nur Entschlüßeln, wenn ich den Stream im Sender schließe. Ansonsten müßte ich das, denke ich, über einen Buffer lösen. Nun ist die Frage wie das geht.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
                NetworkStream Client_Stream = client.GetStream();
        
                RijndaelManaged Rijndael_Manager = new RijndaelManaged();
                    
                CryptoStream Crypto_Stream = new CryptoStream(Client_Stream, Rijndael_Manager.CreateDecryptor(schluessel, vecktor), CryptoStreamMode.Read);
                
                StreamReader Stream_Reader = new StreamReader(Crypto_Stream);
                
                string test = Stream_Reader.ReadToEnd();
                MessageBox.Show(test);

    Damit habe ich es auch schon Probiert:
    Code :
    1
    
    Crypto_Stream.BeginRead(Read_Buffer, 0, size, new AsyncCallback(empaenger), null);
    Danach über Encoding.UTF8.GetString wieder in einen String geholt. Leider auch ohne Erfolg...

    Viele Grüße und vielen Dank für die Hilfe.
    Fridulin


    Edit:
    Hallo,

    ich wollte mich mal wieder mit meinem alten Projekt beschäftigen und mal Fragen ob vielleicht jemand mittlerweile eine Idee hat.

    Also alles funktioniert bis zum Code
    Code :
    1
    
    string test = Stream_Reader.ReadToEnd();
    Da bleibt mein Programm hängen, bis der Stream ganz geschloßen wird. Dann ist der Empfangen String entschlüßelt. Komischerweise hängt er allerdings noch ein paar komische Zeichen dahinter.
    Er bleibt auch hängen sobald ich Stream_Reader.ReadLine() mache, oder Stream_Reader.Peek() statt Stream_Reader.ReadToEnd().

    Mein Sender sieht folgendermaßen aus:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    byte[] byte_string = new ASCIIEncoding().GetBytes(nachricht); <<< nachricht ist der String der gesendet werden soll.
    RijndaelManaged Rijndael_Manager = new RijndaelManaged();
    CryptoStream Crypto_Stream = new CryptoStream(client.GetStream(), Rijndael_Manager.CreateEncryptor(schluessel, vecktor), CryptoStreamMode.Write); 
    StreamWriter Stream_Reader = new StreamWriter(Crypto_Stream);
    Crypto_Stream.Write(byte_string, 0, byte_string.Length);    
    Crypto_Stream.Flush();
    Crypto_Stream.FlushFinalBlock();
    Stream_Reader.Flush();
    Vielleicht ist ja darinnen auch der Fehler enthalten?

    Also ich wäre wirklich über jede Hilfe oder Idee sehr Dankbar.


    Viele Grüße und einen schönen Nachmittag wünsche ich.
    Fridulin

    Edit2:

    Hallo,

    so kann das nicht funktionieren, wurde mir gesagt. So wie mir das gesagt wurde, muß man entweder den Stream beenden oder eben den String verschlüßeln und dann übertragen. Nicht den ganzen Stream verschlüßeln.

    So habe ich das jetzt auch endlich lösen können.

    Viele Grüße
    Fridulin
    Geändert von Fridulin (30.01.09 um 00:29 Uhr) Grund: Etwas hinzugefügt
     

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 08.11.09, 10:55
  2. application/octet-stream mit <embed> stream?
    Von tobee im Forum HTML & XHTML
    Antworten: 4
    Letzter Beitrag: 30.03.07, 13:21
  3. Pdfdatei als Stream zum Client schicken
    Von teppi im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 2
    Letzter Beitrag: 21.10.05, 16:42
  4. Antworten: 2
    Letzter Beitrag: 23.05.05, 22:30
  5. Live Stream Converter (Shoutcast Stream)?
    Von plusfunenf im Forum Linux & Unix
    Antworten: 1
    Letzter Beitrag: 22.04.04, 14:45