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."