Re: Dateiaustausch zwischen clientsocket und serversocket..^
Jo, und definiert in der Unit Math.pas. Somit die UsesListe um Math erweitern oder selbst schnell eine If Abfrage schreiben...
/EDIT: Ich habe die erste IF Abfrage nochmal auf >= geändert. > muss nicht sein, >= reicht schliesslich schon... Und wo habe ich eine Klammer vergessen? |
Re: Dateiaustausch zwischen clientsocket und serversocket..^
okay, das klappt schonmal ;) thx
beim sendeversuch kommt allerdings noch (nach 4 sekunden warten, nach dem buttonklick) ein access violation im Clientprojekt und dieses CPU Fenster öffnet sich. hat da jemand eine idee??:( //edit: die klammer hattest du bei
Delphi-Quellcode:
vergessen, als ich den text kopiert hatte. Jetzt ist sie ja da, gut^^
Socket.ReceiveBuf(fStreamDataSize, SizeOf(fStreamDataSize));
|
Re: Dateiaustausch zwischen clientsocket und serversocket..^
Unit math
...zu spät ;) |
Re: Dateiaustausch zwischen clientsocket und serversocket..^
okay also ich hab den access violation-Fehler mal weiter verfolgt.
er tritt nicht auf, wenn ich das Bitmap im Client nicht vom Stream lade sprich wenn ich folgendes aus dem Code herausnehme:
Delphi-Quellcode:
also hat der scheinbar ein Problem mit dem laden des Streams würd ich mal sagen, aber was, weiß ich jetzt nicht, habt ihr da eine Idee?
// Image einlesen
Image1.Picture.Bitmap.LoadFromStream(FStream); |
Re: Dateiaustausch zwischen clientsocket und serversocket..^
Naja, gibt es denn auch ein Image1 auf deiner Form?
|
Re: Dateiaustausch zwischen clientsocket und serversocket..^
natürlich, ansonsten würde ja schon vor dem Start ein Fehler kommen und das Prog. würde erst gar nicht starten.
|
Re: Dateiaustausch zwischen clientsocket und serversocket..^
Zitat:
|
Re: Dateiaustausch zwischen clientsocket und serversocket..^
Fehler der Klasse EInvalidGraphic
Meldung: Bitmap ist ungültig´ //edit: hab auch nochmal gesucht, aber sowas hilft mir da auch jetzt nicht wirklich. |
Re: Dateiaustausch zwischen clientsocket und serversocket..^
Wenn das Bitmap wirklich ungültig sein sollte (was eine ganz andere Exception ist als eine Access Violation(!!)), dann kann folgendes sein:
1. Das Bild wird falsch beim Sender in den Stream gespeichert (welcher später versendet wird) 2. Das Bild ist einfach kein Bitmap 3. Das Bild wird zu früh geladen 4. Es werden noch andere Daten dazwischen gesendet (wie man dies auch immer hinbekommen sollte) Aber um das mal zu untersuchen, wäre es zu empfehlen sich die empfangenen Daten anzuschauen. Also speicher mal den MemoryStream vor dem Anzeigen in dem Image (SaveToFile()) und dann schau mal, ob die Datei vom Inhalt die gleiche ist wie die gesendete... |
Re: Dateiaustausch zwischen clientsocket und serversocket..^
sorry, mein Fehler, bin selber drauf gekommen. Beim Server hab ich etwas mit reinkopiert, was schon drinstand. Ich hab die Länge zweimal gesendet, somit war im ankommenden stream nach der rausgefilterten Größe noch immer die Größe am Anfang, welche der stream natürlich nicht ins Bild laden konnte. Es klappt jetzt, nochmal VIELEN DANK!! :mrgreen:
PS: vll nurnoch eine kleine Frage: wie kann man ein Bild von der Größe verkleinern? also halbieren, dritteln..? Antwort muss nicht sein wär aber noch der Punkt auf dem i ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz