Soo geht das nicht.
Wenn der Client sich mit dem Server verbindet, dann zwingt ihn niemand sofort Daten zu senden.
Dein Server braucht für jede Verbindung ein Kontext-Objekt, in dem der Zustand der Verbindung gespeichert wird.
Delphi-Quellcode:
TKontext = class(TObject)
public
Username:string;
LoggedIn : Boolean;
ConnectionTime : TDateTime;
...
end;
Wenn der Client etwas sendet, dann kann der Server z.B. prüfen, ob sich der Client schon angemeldet hat.
Du bist etwas unpräzise mit deiner Aussage "erwartet der Server bestimmte Daten von ihm".
Deshalb nehme ich hier mal an, dass der Client sich mit User und Passwort anmelden soll.
Auf jeden Fall kannst du die Anmeldung nicht im OnConnect abfrühstücken.
Im OnConnect kannst du nur das Kontext-Objekt erzeugen; alles andere kommt später.