Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Sockets.pas - Fehler in TCustomTcpServer.Accept?

  Alt 3. Mär 2009, 23:35
Hi,

Also ich hatte jetzt seit Stunden mit einem Problem zu kämpfen... Kurz nachdem ein Client auf meinen Server connected ist, wurde er auch wieder disconnected. Ich hatte echt keine Ahnung woher das Problem kommen soll. Habe den Fehler erst in meinem Code gesucht, dann in der Sockets.pas.

Dort ist die Methode Accept, des TTCPServers überladen. Die Methode, die ich aufgerufen hatte war folgende:

Delphi-Quellcode:
function TCustomTcpServer.Accept(var ClientSocket: TCustomIpClient): Boolean;
begin
  // Was auch immer...
  DoAccept(ClientSocket)
end;

function TCustomTcpServer.Accept: Boolean; // <--- Die hab ich aufgerufen. Im OnAccept dann reagiert und das neue Socket abgeholt.
var
  ClientSocket: TCustomIpClient;
begin
  ClientSocket := TCustomIpClient.Create(nil);
  try
    Result := Accept(ClientSocket);
  finally
    ClientSocket.Free; // <--- .......... -.-
  end;
end;
Das Problem hab ich im Code schon markiert... Ist das ein Fehler? Ich benutze jetzt das andere Accept und damit funktioniert es. Aber wofür soll das andere Accept gut sein, wenn das Socket nach dem OnAccept Event eh wieder geschlossen und gelöscht wird?
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat