Maitrise des erreurs sockets

Contenu du snippet

Ce code a pour but de traiter les erreurs sockets proprement (c'est à dire sans de message d'alert sur votre serveur par exemple)... Etant donné que la question à été posée sur le forum, je pose le code ici :)

Source / Exemple :


(Voici pour le serveur :}
procedure TForm1.ServerSocket1ClientError(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
var Rapport : String;
begin
        case ErrorEvent of
                eeGeneral : Rapport := 'Erreur inattendu : '+Socket.RemoteAddress;
                eeSend : Rapport := 'Erreur d''écriture sur la connexion socket : '+Socket.RemoteAddress;
                eeReceive : Rapport := 'Erreur de lecture sur la connexion socket : '+Socket.RemoteAddress;
                eeConnect : Rapport := 'Une demande de connexion déjà acceptée n''a pas pu être achevée : '+Socket.RemoteAddress;
                eeDisconnect : Rapport := 'Erreur de fermeture d''une connexion : '+Socket.RemoteAddress;
                eeAccept : Rapport := 'Erreur d''acceptation d''une demande de connexion cliente : '+Socket.RemoteAddress;
        end;

        ErrorCode := 0;
        ErrorEvent := Null;
end;

{Voici pour le client :}

procedure TForm1.ClientSocket1Error(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
var Rapport : String;
begin
        case ErrorEvent Of
                eeGeneral : Rapport := 'Erreur inattendue';
                eeSend : Rapport := 'Erreur d''écriture sur la connexion socket';
                eeReceive : Rapport := 'Erreur de lecture sur la connexion socket';
                eeConnect : Rapport := 'Connexion échouée, vérifiez que l''adresse du serveur et le port sont exacts';
                eeDisconnect : Rapport := 'Erreur de fermeture d''une connexion';
                eeAccept : Rapport := 'Erreur d''acceptation d''une demande de connexion cliente';
        end;

        Infos1.Lines.Add(Rapport); // on écrit le rapport dans un richedit !

        ErrorCode := 0;
end;

Conclusion :


Bon ben j'espère que ça vous aidera, personellement g appris cette méthode sur http://www.delphipage.fr.st

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.