Du hast da ein paar falsche Annahmen über das Funktionieren der Sockets. Ist kein Wunder, sie sind schlecht dokumentiert. Sei froh, sie funktionieren viieel einfacher, als du glaubst.
Ein kleines Demobeispiel, das grundlegende Funktionen zeigt:
Delphi-Quellcode:
procedure log(text:string);
begin
form1.memo1.lines.add(text);
end;
procedure TForm1.Button1Click(Sender: TObject);
var stream1:tfilestream;filename:string;
begin
filename:= 'C:\irgendeinPfad\test.txt';
stream1:=tfilestream.Create(filename,fmOpenRead or fmShareExclusive);
serversocket1.Socket.connections[0].SendStream(stream1);
end;
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
log(socket.receivetext);
end;
Wenn empfangen wird, wird das read ereignis ausgelöst. Zum Zeitpunkt connect Ereignis kannst du noch nichts auswerten. Connect sagt nur, dass die Verbindung steht, nicht das Daten da sind.
grüsse,
der flossinger