| Autor |
Beitrag |
Maniacmd
      
Beiträge: 94
Windows XP
Delphi 7 Personal
|
Verfasst: Fr 11.09.09 20:32
hi,
ich habe mir im forum paar beiträge zum dateiversand über sockets durchgelesen und habe einen code geschrieben der von einem programm (bei mir der server) zu einem anderen (client) einen screenshot senden soll. der screenshot wird aber bei dem programm wo er hin gesendet wird nicht angezeigt.
das ist das program das den screenshot sendet
Delphi-Quelltext 1: 2: 3: 4: 5:
| takescreenshot;
streambild:=tmemorystream.create; image1.Picture.Bitmap.SaveToStream(streambild); socket.SendStream(streambild); |
und das der empfänger
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); var streambild:tmemorystream; bufferl:integer; zeiger:pointer; begin Log.Lines.Add(Socket.ReceiveText);
streambild:=tmemorystream.Create; bufferl:=socket.ReceiveLength; getmem(zeiger,bufferl); socket.ReceiveBuf(zeiger^,bufferl); streambild.Write(zeiger^,bufferl); image1.Picture.Bitmap.LoadFromStream(streambild);
end; |
vielleicht wisst ihr wo das problem liegt
mfg
Zuletzt bearbeitet von Maniacmd am Fr 11.09.09 20:41, insgesamt 1-mal bearbeitet
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Fr 11.09.09 20:36
Das orange tut ja in den Augen weh.. schau dir mal bitte an, wie man mit Delphi TAGs umgeht.
Zum Problem:
Du musst den Stream nach dem Beschreiben "zurückspulen".
Delphi-Quelltext
_________________ PROGRAMMER: A device for converting coffee into software.
|
|
Maniacmd 
      
Beiträge: 94
Windows XP
Delphi 7 Personal
|
Verfasst: Fr 11.09.09 20:48
wenn ich das "zurückspulen" dazuschreibe empfängt der client zwar irgendwas aber es scheint kein bild zu sein. das image bleibt leer, aber im log werden irgendwelche schriftzeichen ausgegeben. wenn ich die funktion log.lines.add weg lasse passiert einfach nichts
danke soweit erstma mfg
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Fr 11.09.09 21:12
Im Server musst du das natürlich auch machen, vor dem Versenden.
_________________ PROGRAMMER: A device for converting coffee into software.
|
|
Maniacmd 
      
Beiträge: 94
Windows XP
Delphi 7 Personal
|
Verfasst: Sa 12.09.09 17:29
alles klar ich habe jetzt die beiden zeilen einmal im server und im client eingefügt.
jetzt bekomme ich die fehlermeldung:
Bitmap image is not valid
in der image komponente wird ein schwarzes bild angezeigt
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Sa 12.09.09 18:36
Hmpf
speicher das doch erstmal testweise in einer Datei, und vergleich mal die Größen und sowas.
Außerdem:
Besser wäre es, wenn du vor dem eigentlichen Bild die Größe als Integer (bzw. int64) überträgst. Dann kann der Empfänger so lange warten, bis er wirklich alle Daten erhalten hat.
_________________ PROGRAMMER: A device for converting coffee into software.
|
|
Maniacmd 
      
Beiträge: 94
Windows XP
Delphi 7 Personal
|
Verfasst: Sa 12.09.09 19:04
das bild was ankommt ist 54kb groß und kann nicht angezeigt werden. die screenshot funktion wird aber richtig ausgeführt und beim sendenden programm richtig angezeigt also muss ja irgendwas beim senden schief gehn.
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 13.09.09 09:37
Dann schau dir eben einmal die ankommenden Daten an und vergleiche mit dem Original. Damit du weißt was da falsch ankommt, was also ggf. fehlt usw.
Aber Xentar hat ja auch schon die Größenangabe erwähnt, das reicht vermutlich schon. Der Rest wird vermutlich einfach nicht mitgespeichert.
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: So 13.09.09 11:04
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Maniacmd 
      
Beiträge: 94
Windows XP
Delphi 7 Personal
|
Verfasst: So 13.09.09 12:49
|
|
Sithlord
      
Beiträge: 172
|
Verfasst: Mi 21.10.09 13:46
Huhu,
sitze am gleichen Problem, kannst du mir mal bitte die Lösung dafür posten?
Würde sicherlich auch andere Interessieren!
|
|