IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Utilisation des Tsocket


Sujet :

Delphi

  1. #1
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 62
    Points : 52
    Points
    52
    Par défaut Utilisation des Tsocket
    Bonjour tous le mond!!!


    exposé du prob:
    je suis sur une application (compteur pour un Cyber cafe), c'est une application sur réseau local!, pour cela j'utilise les composants serversocket et clientsocket.
    sur l'application serveur g tous les postes client(affichés sous formes d'iconnes) et le compteur y est au serveur; et lappli client ne sert que pour l'affichage du montant , l'heur de début et de fin d'utilisation!
    mon prob est comment faire pour détecté les applit clients sur le serveur afin de permetre une transmission entre le compteur 1 (timer) et lapli 1 (poste1) ainsi de suit...
    PS: je n'ai pas beaucoup d'experience en ce domaine!!!
    et que me conseillez vous? de laisser le compteur sur le serveur! oubien de le mettre sur les appli clients?

    Veuillez accepter mes salutations distinguées!

  2. #2
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 62
    Points : 52
    Points
    52
    Par défaut
    au fête mon souci est comment faire pour différencier les aplications des clients au niveau de l'apli serveur, afin de pouvoir faire des transmissions de données pour chaqu'un!
    je vous rappel que j'utilise des timer pour chaque poste!
    les timers sont dans l'aplication serveur!!!
    Je vous remerci d'avance!!!

  3. #3
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Sur le serveur je creerait une classe "TClient" qui possede une procedure "IncTime" liée a une variable privée "_Time".

    Cette fonction ne se contente que d'incrementer cette variable.

    La liste des client connecté est definie par un array of TClient dynamique.

    Lorsqu'une session est lancée, le client se connecte au serveur qui lui attribue un "socket" (parametre de l'evenement "OnConnect")

    Le plus simple serait de sotcké ce socket dans une property du TCient...

    PAr contre je me demande si ca ne serait pas mieux que ce soit le client qui effectue une requette toutes les X secondes (parametrable) pour recuperer la valeur du compteur ....

    Voila pour quelques pistes de bases. Je ne suis pas expert en la matiere, mais j'ai deja mis en place cela dans un projet de "Chat" basique ... pour tester la technologie.

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 563
    Points : 25 165
    Points
    25 165
    Par défaut
    J'ai déjà fait ce genre de chose pour un pilotage de trieuse, regarde dans l'exemple Chat fourni avec Delphi 5 et 6 ...

    Ce code est un peu vieux (2001)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
                  Index := IndexHandle(FrmMainServeur.SocketDFT, TTelegrammeDFT(TelegrammeDFTLst[I]^).Handle) ;
                  FrmMainServeur.SocketDFT.Socket.Connections[Index].SendText(TTelegrammeDFT(TelegrammeDFTLst[I]^).Acquittement);
    ....
    SocketDFT étant un Serveur Socket
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function IndexHandle (var ServerSocket : TServerSocket; Handle : Integer) : Integer ;
    var
        I : integer;
    begin
        // Verification de la connexion
        Result := -1 ;
        for I := ServerSocket.Socket.ActiveConnections - 1 downto 0 do begin
            if (Handle) = ServerSocket.Socket.Connections[i].SocketHandle then begin
                Result := I ;
                Break ;
            end;
        end;
    end ;
    dans un projet similaire en 2003, j'ai fait ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    for iSocket := 0 to FrmServeur.ServerSocketCHM.Socket.ActiveConnections - 1 do begin
        try
           if FrmServeur.ServerSocketCHM.Socket.Connections[iSocket].Connected then begin
              FrmServeur.ServerSocketCHM.Socket.Connections[iSocket].SendText(BufferSendStr);
              IncPrgNumber('CHM');
              // Log du Buffer envoyé à Sandvik
              if gFlagLogBrut then begin
                 FichierLog('OAM_TO_CHM_RTX','CHM',BufferSendStr);
              end;
           end;
     
        except
              FichierLog('OAM_TO_CHM_RTX_EXCEPT','CHM',Exception(ExceptObject).Message);
        end;
    end;
    Toutes les Sockets connu sur le port CHM recoivent le message

Discussions similaires

  1. Eviter les erreurs lors de l'utilisation des compo Tsocket
    Par Coussati dans le forum Composants VCL
    Réponses: 5
    Dernier message: 01/02/2006, 19h14
  2. [CR8.5] Utilisation des codes barre
    Par Robert dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 20/01/2005, 16h13
  3. utilisation des sockets sous windows
    Par Tupac dans le forum Réseau
    Réponses: 2
    Dernier message: 21/12/2002, 18h24
  4. [Crystal Report] Utilisation des vues de sql serveur
    Par Olivierakadev dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 15/11/2002, 17h44
  5. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo