Ups.
Der Fehler ist mir gar nicht aufgefallen. Dann versuche ich es jetzt noch ein bisschen deutlicher zu beschreiben:
Ich verschicke den Stream:
Delphi-Quellcode:
Try
S := TMemoryStream.Create;
JPG.SaveToStream(S);
TCPClient.IOHandler.Write(S);
FreeAndNil(S);
Except
ShowMessage('Fehler: SendStream');
end;
Keine Fehlermeldung und JPG enthält ein richtiges Bild.
Ich empfange den Stream:
Delphi-Quellcode:
//"Willkommensmeldung" zur Kontrolle, ob Verbindung zum Clienten steht
AContext.Connection.IOHandler.WriteLn('Connecting to Client ...');
connected := true;
S := TMemoryStream.Create;
while connected do begin
try
//Versuche Stream zu empfangen
AContext.Connection.IOHandler.ReadStream(S);
JPG := TJPEGImage.Create;
JPG.LoadFromStream(S);
Windows.Beep(1000,2000);
JPG.SaveToFile('temp.jpg');
JPG.Free;
except
ShowMessage('Fehler: GetStream');
end;
end;
FreeAndNil(S);
Zwar ist der DualCore bei 100 % Auslastung, aber passieren tut nichts. Weder ein Windows-Signalton, noch eine Fehlermeldung.
Ich würde ja gerne mal mit Breakpoint testen, doch beim Compilieren kommt gleich:
Zitat:
---------------------------
Debugger
Exception Notification
---------------------------
Project Project1.exe raised
exception class EIdSocketError with message 'Socket Error # 10061
Connection refused.'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
Er sagt dann noch, dass er eine IdStackBSDBlaBlaBla nicht finden konnte.
Aber diese Fehlermeldung hab ich eigentlich immer bei den Indys, aber nicht, wenn ich die kompilierte EXE aufrufe, da meckert er dann komischerweise nicht.
Imho hat die Fehlermeldung nichts damit zu tun. Mache ich ein neues Projekt mit TCPClient aus der neuesten Indysammlung auf die Form, schreibe ins FormCreate TCPClient.Host := '127.0.0.1';, kommt beim Kompilieren der selbe Fehler, aber nicht später in der EXE.