Moin!
Naja, bevor das noch jemand als "Vorlage" betrachtet...
huhn hat folgendes geschrieben: |
habs hinbekommen  |
Nein, nur scheinbar (das wird nur mit Bildern <8kb und auf der gleichen Maschine einigermaßen brauchbar funktionieren). Der entscheidende Fehler ist hier:
Delphi-Quelltext
1:
| Socket.ReceiveBuf(Stream,Socket.ReceiveLength); |
Die DOH sagt dazu:
| Delphi Online Hilfe hat folgendes geschrieben: |
| Use ReceiveBuf to read from the socket connection in the OnSocketEvent event handler of a Windows socket object or in the OnRead or OnClientRead event handler of a socket component. ReceiveBuf returns the number of bytes actually read. If no bytes are read, ReceiveBuf returns –1. |
Du wertest nicht aus, wieviele Bytes tatsächlich gelesen wurden und reagierst demzufolge nicht darauf

das ist ein klarer Programmierfehler. Du stellst nicht sicher, dass alle Bytes gelesen werden.

Noch viel schlimmer: Du verläßt dich darauf, dass dir .ReceiveLength die Größe des Streams liefert, und das ist leider wieder falsch.
Weiterhin verwendest du kein Protokoll, um eine Struktur in deine Datenübertragung zu bekommen; das ist zwar nicht unbedingt gleich als "falsch" anzusehen, aber sicherlich reichlich "unklug".
Hier ist ein Tutorial, wie du ein Protokoll entwickeln und umsetzen kannst.
cu
Narses
There are 10 types of people - those who understand binary and those who don´t.