Hallo zusammen,
erstmal, das hier ist mein erster Post
Ich programmiere mit Delphi 6 und den dabei vorinstallierten IndyKomponenten. Nun, das ist mein erstes Projekt im Sinne von Netzwerkprogrammierung und ich stoße auch direkt auf einige Probleme.
Ich habe einen Client und einen Server in einem Programm, die aber nicht gleichzeitig laufen sollen.
Der Server bekommt seine Anweisungen und Daten per OnExecute und dort wird dann aus dem AThread gelesen, das hat soweit auch schonmal funktioniert. Ich habe dann um die Verbindung zu dem Client zu behalten (und vor allem um ihm aus einer anderen Prozedur heraus Daten zu senden) den AThread in eine andere Variable vom Typ TIdPeerThread verpackt und diese SClient genannt.
Über
SClient.Connection.WriteLn('String');
sollte ich dann ja auch Daten versenden können.
Das hat auch schon soweit geklappt, wenn der Client auf eine Antwort vom Server gewartet hat.
Als das nicht der Fall war und der Server von sich aus etwas Übertragen sollte, bemerkte der Client das nicht.
Also habe ich mich hier im Forum umgeschaut und gelesen, dass man das mit einem Timer realisieren kann.
Bei dem Versuch hängen sich Server und Client auf. So sieht der OnTimer Code aus:
Delphi-Quellcode:
try
Verarbeitung(IdClient.ReadLn());
finally
end;
Warum hängt sich der Client also auf? Ich habe den Intervall auf 200 gesetzt (das wird ja in ms angegeben). Daran sollte es eigentlich nicht liegen oder?
Und der Server hängt sich auch gerne auf - ich weiß nicht warum das so ist.
Ich wäre für jeden Rat dankbar.
Viele Grüße,
uaua
edit:
Habe zwar keine Lösung gefunden, aber anderweitig Abhilfe geschaffen. Somit hat es sich dann doch erledigt.