tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
797
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von thekiller
    thekiller thekiller ist offline Viceinator
    Registriert seit
    Dec 2004
    Ort
    Wismar
    Beiträge
    396
    Hallo,

    ich hab im gerade ein kleines Problem beim empfangen von Daten. Und zwar, dass die Menge der Daten die ich sende(Binärdaten) zwar stimmt, aber diese Datenpackete irgendwie durcheinandergewürfelt sein müssen. Ich habe dass anhand eines Bildes feststellen können, was ich gesendet habe. Es hat beim Empfänger die richtige größe aber Das Bild ist total fragmentiert . Das tritt nur auf, wenn ich es über Internet sende. Lokal Funktioniert es ohne Probleme.
    Dass lässt mich darauf schließen, dass meine Datenpakete(die ich in einer Schleife sende), nicht schnell genug gesendet werden.
    Ich habe mal irgendwo im Internet ein Beispiel gesehen wo dass umgangen wurde. Finds aber nicht mehr wieder.
    Könnt Ihr mir da weiterhelfen?

    LG Manuel
     
    OS: Win 7 Ultimate x64
    CPU: Intel Core i7 2600K (3,4GHz - 3,8 GHz)
    RAM: 4 x 8GB-DDR3 1333MHz
    Board: Asus P8Z68-V/Gen3
    GFX: Nvidia GTX580 (Palit)

    Cinema 4D R12, Photoshop CS5, Visual Studio 2010, Qt SDK, Notepad++
    blog.unlimitedengine.de
    design-projects.de

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Hi.

    Zeig deinen Code. Mit Stream Sockets werden die Daten in der Reihenfolge übertragen und empfangen in der sie gesendet wurden.

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    Avatar von thekiller
    thekiller thekiller ist offline Viceinator
    Registriert seit
    Dec 2004
    Ort
    Wismar
    Beiträge
    396
    Das wird wohl erstmal nix mit Source. Mein Programm ist schon etwas komplexer. Ich müsste den Source extrem beschneiden und dass Ganze gleich 2 mal(Server und Client), sonst sieht da keiner durch außer ich.
    Ich bin grad auch noch am gucken überall und glaube dass OnSend und OnReceive vielleicht meine Lösung sein könnte, aber ich find nirgends ne gute Erklärung zu dem Prinzip dahinter.
    Im Grunde geht es mir ja darum, dass Mein programm blockiert werden soll, solange gesendet/empfangen wird. Also erst dann weitergemacht wird, wenn das komplette Datenpaket gesendet und empfangen wurde.
     
    OS: Win 7 Ultimate x64
    CPU: Intel Core i7 2600K (3,4GHz - 3,8 GHz)
    RAM: 4 x 8GB-DDR3 1333MHz
    Board: Asus P8Z68-V/Gen3
    GFX: Nvidia GTX580 (Palit)

    Cinema 4D R12, Photoshop CS5, Visual Studio 2010, Qt SDK, Notepad++
    blog.unlimitedengine.de
    design-projects.de

  4. #4
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Zitat Zitat von thekiller Beitrag anzeigen
    Das wird wohl erstmal nix mit Source. Mein Programm ist schon etwas komplexer. Ich müsste den Source extrem beschneiden und dass Ganze gleich 2 mal(Server und Client), sonst sieht da keiner durch außer ich.
    Das ist schlecht.
    Zitat Zitat von thekiller Beitrag anzeigen
    Ich bin grad auch noch am gucken überall und glaube dass OnSend und OnReceive vielleicht meine Lösung sein könnte, aber ich find nirgends ne gute Erklärung zu dem Prinzip dahinter.
    Im Grunde geht es mir ja darum, dass Mein programm blockiert werden soll, solange gesendet/empfangen wird. Also erst dann weitergemacht wird, wenn das komplette Datenpaket gesendet und empfangen wurde.
    Receive, Send, ReceiveFrom, SendTo, and Accept sind blockierende Funktionen.

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  5. #5
    PoebelundGesocks PoebelundGesocks ist offline Mitglied Bronze
    Registriert seit
    Feb 2004
    Ort
    Ehingen (BW)
    Beiträge
    41
    Zitat Zitat von thekiller Beitrag anzeigen
    Das wird wohl erstmal nix mit Source. Mein Programm ist schon etwas komplexer. Ich müsste den Source extrem beschneiden und dass Ganze gleich 2 mal(Server und Client), sonst sieht da keiner durch außer ich.
    Nja, dein Send/Receive sollte nicht die welt sein, sonst hast du was falsch gemacht. KISS

    Zitat Zitat von thekiller Beitrag anzeigen
    Ich bin grad auch noch am gucken überall und glaube dass OnSend und OnReceive vielleicht meine Lösung sein könnte, aber ich find nirgends ne gute Erklärung zu dem Prinzip dahinter.
    Im Grunde geht es mir ja darum, dass Mein programm blockiert werden soll, solange gesendet/empfangen wird. Also erst dann weitergemacht wird, wenn das komplette Datenpaket gesendet und empfangen wurde.
    OnSend und OnReceive sind sog. Callbacks, in die du laufen kannst (falls entsprechend aktiviert) nachdem etwas versendet werden kann(OnSend) oder nachdem etwas empfangen wurde/empfangen werden kann (im empfangspuffer liegt) (OnReceive).

    Hierzu:
    OnSend
    OnReceive

    - btw. beide kommen aus CAsyncSocket (non-blocking).

    Gruß Dave
     

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 08.10.10, 16:39
  2. TCPServer/Client: wie Send/Receive Daten?
    Von jupp2oo8 im Forum Borland CBuilder und VCL
    Antworten: 2
    Letzter Beitrag: 07.05.08, 08:28
  3. Popup schließen nachdem Eigenschaften gesendet wurden
    Von chocox im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 13.03.08, 02:59
  4. Mit PHP prüfen ob Daten von Flash gesendet wurden?
    Von Wuffel11 im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 23.04.07, 13:01
  5. Header wurden bereits gesendet
    Von Ghost2525 im Forum PHP
    Antworten: 8
    Letzter Beitrag: 20.04.06, 12:50