Forum: Netzwerke
by tomkupitz,
9. Feb 2018
ja, nonblocking.
nein, habe ich nur zu Testzwecken verwendet, ist also noch nicht "optimiert".
Forum: Netzwerke
by tomkupitz,
9. Feb 2018
Sooo...
Server:
procedure TForm1.Button1Click(Sender: TObject);
var bmp: TBitmap;
buf: array of Byte;
res, len, bufidx, bufsize: Integer;
Forum: Netzwerke
by tomkupitz,
9. Feb 2018
Schön wäre wenn immer alles ankommen würde. Ich habe n * 1024 Bytes geschickt (gesamt ca. 200000 Bytes). Angekommen sind ca. 65000 Bytes. Immer! Nur mit Pause beim Senden hat es funktioniert.
Forum: Netzwerke
by tomkupitz,
9. Feb 2018
Genau so sehe ich das auch. Bisher habe ich aber noch keine "saubere" Übertragung für meinen Kontext gefunden.
Forum: Netzwerke
by tomkupitz,
8. Feb 2018
Alles gut. Ich habe eure Beispiele probiert. Danke dafür.
Ergebnis meiner Tests: Es scheint ein Zeitproblem zu geben. Baue ich eine Pause nach jedem
if ServerSocket.Socket.ActiveConnections>0 then
ServerSocket.Socket.Connections.SendBuf(...);
ein kommt auch alles an.
Forum: Netzwerke
by tomkupitz,
7. Feb 2018
Puffer zusammenpacken ist an sich kein Problem. Nur der Bezug zum Socket war mir wichtig.
Es sieht so aus, als wäre die max. Größe eines Blocks ein High(Word). Ich werde versuchen schon beim Versenden diese max. Blockgröße nicht zu überscheiten.
Forum: Netzwerke
by tomkupitz,
6. Feb 2018
Hallo,
wenn die Daten blockweise eintreffen sollte ReceiveLength die jeweilige Blockgröße angeben. Wie ich aber lese ist der Wert von ReceiveLength nicht immer genau. Damit wird es unmöglich die gesamten Daten "zusammenzupacken".
Oder hat jemand doch ein Stück Quelltext?
Beste Grüße
Forum: Netzwerke
by tomkupitz,
6. Feb 2018
Hallo,
ich schicke mit
SendBuf(buf, Length(buf));
Daten an den Client. Dort kommen die Daten
Socket.ReceiveBuf(buf, Socket.ReceiveLength);