Problem z telnet ics

0

Własnie robie program który łaczy sie z wieloma hostami przez telnet i mam pewiem problem ... gdy sie połacze to program tak jakby nie zdazy wykonac procedury TelnetDataAvailable i łaczy sie z nastepnych hostem. np gdy napisze

repeat
telnet.host:=listbox.items[i];
telnet.Connect;
telnet.Close;
Inc(i);
until i=ListBox.Items.Count;

a w TelnetDataAvailable(Sender: TTnCnx; Buffer: Pointer;
Len: Integer); wpiszę ShowMessage(StrPas(Buffer)); to program nie nadąza ze zrobieniem ShowMessage(StrPas(Buffer)) tylko Od razu zamyka polaczenie i łaczy sie z nastepnym :) moze ktos wie jak temu zaradzić ? dzieki za wszelkie odpowiedzi


chodzi o komponent TnCnx

0

moge sie mylic, ale moze spróbuj zmienić socket na blokujący się.

0

var
nexthost : boolean;

Procedure TMain.DataRecv(sender : TnCnx; Buffer : pointer; dlug : integer);
begin
// Zrob z tym buforem co chcesz zrobic ...
nexthost := false;
end;

begin
for I := 0 to listbox.items.count-1 do
begin
telnet.host:=listbox.items[i];
telnet.OnDataAvalible := main.datarecv;
nexthost := true;
telnet.Connect;
while nexthost = true do
begin;
sleep(1);
Application.ProcessMessage;
end;
telnet.close;
end;
end;

gdzie Tmain - klasa glownej formy, chyba najprostszy sposob, a moze najlatwiej stworzyc watek w api, odebrac dane w api, i zamknac watek w api ?
Decyzja nalezy do ciebie.... ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1