Einzelnen Beitrag anzeigen

gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#4

Re: Indy 9 Datei vom Server zum Client senden

  Alt 5. Mär 2008, 11:49
Ich habe die Problemstelle näher einkreisen können.
Beim ersten Connect -> Datei übertragen -> Disconnect funktioniert augenscheinlich alles ohne Probleme.
Erst beim zweiten Connect "läuft" die ServerConnect-Procedure nicht durch.
Delphi-Quellcode:
procedure TForm1.TcpServerConnect(AThread: TIdPeerThread);
var
  NewClient : PClient;
begin
  GetMem(NewClient, SizeOf(TClient));
  
  NewClient.DNS := AThread.Connection.Socket.Binding.PeerIP;
  NewClient.Connected := Now;
  NewClient.LastAction := NewClient.Connected;
  NewClient.Thread :=AThread;
  
  AddProt ('Connect : "'+NewClient.DNS+'"');

  AThread.Data:=TObject(NewClient);
  
  try
    Clients.LockList.Add(NewClient); // <- hier ist schluß
    AddProt ('Connect in LockListe.');
  finally
    Clients.UnlockList;
  end;

  AddProt ('Connect : fertig');
end;
Vielleicht noch das Disconnect:
Delphi-Quellcode:
procedure TForm1.TcpServerDisconnect(AThread: TIdPeerThread);
var
  ActClient: PClient;
begin
  ActClient := PClient(AThread.Data);
  AddProt ('Disconnect : "'+ActClient^.DNS+'"');
  
  try
    Clients.LockList.Remove(ActClient);
    AddProt ('DisConnect aus lockliste');
  finally
    Clients.UnlockList;
  end;

  FreeMem(ActClient);

  AThread.Data := nil;
  AddProt ('Disconnect : fertig');
end;
Die AddProt-Proceduren sind nicht schuld. Die kann ich auskommentieren und es passiert das gleiche.

Irgendwas scheint beim Senden der Datei "kaputt" zu gegen

Ich weiß nicht weiter
  Mit Zitat antworten Zitat