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

C++Builder Discussion :

T'chat sous Builder 5


Sujet :

C++Builder

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 41
    Par défaut T'chat sous Builder 5
    Bonjour !

    Je voudrai programmer un T'chat sous builder c++ 5. Je connais un peu le monde des Sockets mais je ne sais pas comment avoir une reconnaissance des personnes en fonction des IP et aussi comment plusieurs clients peuvent dialoguer entre eux!

    Merci beaucoup si quelqu'un peux m'aider !

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Me semble qu'il y a un exemple de TChat fourni avec Borland...jette un oeil dans le dossier exemples

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 41
    Par défaut
    Citation Envoyé par Neilos
    Me semble qu'il y a un exemple de TChat fourni avec Borland...jette un oeil dans le dossier exemples
    Nop, je viens de vérifier et rien qui ressemble à un T'chat dans le dossier exemple !

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Arf effectivement je ne le retrouve pas...pourtant j'était sur de pas avoir rêvé.
    Désolé :S

  5. #5
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut dussonline:
    Neilos tu n'a pas reve, sur BCB6 Exemple MFC ChatSrv, et sur le site il y a un sujet voici le lien.

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Ca me rassure, merci blondelle

  7. #7
    Membre expérimenté Avatar de Bily.sdi
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 208
    Par défaut
    salut DUSSONLINE,

    dans les socket lorsque tu recois un message ,
    dans Socket->OnReceive( ... ,Tsocket socket *) " qqch comme ca"

    dans cette fonction tu ecris
    Socket->Remote // c'est le nom du pc qui a envoyé le message
    Socket->Adress // l'adresse ip du pc qui a envoyé le message
    Socket->...

    j'utilisai les socket masi j'ai un autre moyen aussi pour gerer les provenances
    des messages et leurs repondre , cela via les Handle des sockets.

    je le posterai si qqn veux voir

    @+

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 41
    Par défaut
    Citation Envoyé par blondelle
    Salut dussonline:
    Neilos tu n'a pas reve, sur BCB6 Exemple MFC ChatSrv, et sur le site il y a un sujet voici le lien.
    Ben je suis sous BCB5 en fait ^^ ça doit etre pour ça

    merci =)

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 41
    Par défaut
    Citation Envoyé par Bily.sdi
    salut DUSSONLINE,

    dans les socket lorsque tu recois un message ,
    dans Socket->OnReceive( ... ,Tsocket socket *) " qqch comme ca"

    dans cette fonction tu ecris
    Socket->Remote // c'est le nom du pc qui a envoyé le message
    Socket->Adress // l'adresse ip du pc qui a envoyé le message
    Socket->...

    j'utilisai les socket masi j'ai un autre moyen aussi pour gerer les provenances
    des messages et leurs repondre , cela via les Handle des sockets.

    je le posterai si qqn veux voir

    @+

    D'accord donc ça c'est pour le coté serveur !

    J'ai programmer mon T'chat pour le moment que d'un client vers le serveur, un envoie simple de message mais j'ai un soucis !
    Lorsque je me connecte, le serveur marque 1utilisateur co ( normal ) mais quand je vais sur ma section T'chat de mon programme et que j'envoie un message il m'ouvre une 2eme connection avec un autre port de sortie. Ce qui fait que j'ai 2utilisateurs de connecté d'aprés le serveur. Il faudrai que je puisse faire en sorte qu'il n'utilise que la meme socket pour le T'chat est la connection!

    J'espere que je me suis bien expliqué^^ je veux bien posté des bout de code si vous voulez
    sinon je veux bien voir ton autre exemple avec les handle!

  10. #10
    Membre expérimenté Avatar de Bily.sdi
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 208
    Par défaut
    salut,

    c'est quoi ta section t'chat ? met nous un bout de code

    y a des exemple des les tuto , verifie !

    sinon tu places un socket serveur et client sur ton programme
    serveur et client !

    ton socket serveur servira a receptionner et le client a envoyer !
    tu verra les choses plus claire je pense.

    a chaque connexion , tu enregistrera dans une table les ip des clients etc..

    et c'est partis pour

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 41
    Par défaut
    Citation Envoyé par Bily.sdi
    salut,

    c'est quoi ta section t'chat ? met nous un bout de code

    y a des exemple des les tuto , verifie !

    sinon tu places un socket serveur et client sur ton programme
    serveur et client !

    ton socket serveur servira a receptionner et le client a envoyer !
    tu verra les choses plus claire je pense.

    a chaque connexion , tu enregistrera dans une table les ip des clients etc..

    et c'est partis pour
    Pour l'envoi après pression sur le bouton send :
    void __fastcall TForm1::Button4Click(TObject *Sender)
    {
    int ports;
    ClientSocket1->Address=Form2->IP->Text;
    ports=11000;
    if(ports==-1)
    {
    Application -> MessageBox("Erreur sur le Port Serveur","Warning",MB_OK);
    }
    else
    {
    ClientSocket1->Port=ports;
    ClientSocket1->Open();
    }


    String strToSend = nick->Text
    + " : "
    + Edit1->Text;
    if( Edit1->Text.IsEmpty() )
    return;
    this->Memo1->Lines->Add( strToSend );
    ClientSocket1->Socket->SendText( strToSend );
    this->Edit1->Text = "";


    }
    Pour la connexion,c'est le meme sans le string a la fin etc...

    voici la tete de mon interface pour que vous compreniez un peu mieux mon pb :



    Donc la fenetre connexion est sur une 2eme fiche.
    Pour le T'chat donc c'est la section sur les onglets et ça ressemble à ça ^^


    Le probleme sur les tuto c'est que c'est directement une connexion avec un serveur dédié au T'chat docn c'est différent car moi je me connecte et après je vais sur la partie T'chat qui elle redemande une connexion socket car c'est une autre fiche!

    Voila merci pour votre aide

  12. #12
    Membre expérimenté Avatar de Bily.sdi
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 208
    Par défaut
    tu veux faire un t'chat generale pour un genre de t'chat comme msn ?

    si c'est un genre de msn ,

    solutions :
    1 serveur avec IP fixe, tous les clients se connect sur ip serveur,
    tu enregistres et classe les nom avec leur ip dans le serveur.
    les ports sont devront etre codés dans ton source !

    A chaque demarrage du programme client (avec un login),
    un message devra etre envoyé au seveur automatiquement,
    dans le message tu enverra le nom du destinataire,
    le serveur receptionne toutes les connexions, et les enregistres (1erfois)
    si login existe -> rechercher le nom -> recherche son ip !
    ip sera toujours mis a jour sur le nom enregistré (login)

    tu prend ip du nom recherché et tu envoies un message !
    tu pourra meme ajouter uen option "brodband" envoie a tout le monde ;-)

    j'espere que ma petite analyse t'aidera, sinon je pense que je devellopperai cela pour m'amuser unpeu

    @+

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 41
    Par défaut
    Citation Envoyé par Bily.sdi
    tu veux faire un t'chat generale pour un genre de t'chat comme msn ?

    si c'est un genre de msn ,

    solutions :
    1 serveur avec IP fixe, tous les clients se connect sur ip serveur,
    tu enregistres et classe les nom avec leur ip dans le serveur.
    les ports sont devront etre codés dans ton source !

    A chaque demarrage du programme client (avec un login),
    un message devra etre envoyé au seveur automatiquement,
    dans le message tu enverra le nom du destinataire,
    le serveur receptionne toutes les connexions, et les enregistres (1erfois)
    si login existe -> rechercher le nom -> recherche son ip !
    ip sera toujours mis a jour sur le nom enregistré (login)

    tu prend ip du nom recherché et tu envoies un message !
    tu pourra meme ajouter uen option "brodband" envoie a tout le monde ;-)

    j'espere que ma petite analyse t'aidera, sinon je pense que je devellopperai cela pour m'amuser unpeu

    @+

    oui c'est un peu ça! mais comment faire pour associé un nom à une IP et renvoyer tout ça à cette personne !

    Sinon pour moi pb de 2connections sockets, j'ai resolu le soucis.

  14. #14
    Membre expérimenté Avatar de Bily.sdi
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    oui c'est un peu ça! mais comment faire pour associé un nom à une IP et renvoyer tout ça à cette personne !
    utilise une base de donnée avec 2 champs (minimum)
    login - ip - email -....

    tu recherche le login - tu le trouve -> tu lis la zone ip -
    si ip est different de l'ip recu avec le login remplace ip de la bd.

    tu trouvera tout sur le site !

    pour une connexion automatique
    active ton socket client a true : si serveur trouvé -> envoyer un message

    Bon travaille (je posterai un exemple avant fin de semaine j'esspere)

    @+

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 41
    Par défaut
    Citation Envoyé par Bily.sdi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    oui c'est un peu ça! mais comment faire pour associé un nom à une IP et renvoyer tout ça à cette personne !
    utilise une base de donnée avec 2 champs (minimum)
    login - ip - email -....

    tu recherche le login - tu le trouve -> tu lis la zone ip -
    si ip est different de l'ip recu avec le login remplace ip de la bd.

    tu trouvera tout sur le site !

    pour une connexion automatique
    active ton socket client a true : si serveur trouvé -> envoyer un message

    Bon travaille (je posterai un exemple avant fin de semaine j'esspere)

    @+
    Han...on est en binome pour faire cette interface et la personne qui se charge justement de la BDD à des soucis pour l'inclure dans Builder et trouver les commandes qui vont bien pour les comparaisons. Je vaiss voir un peu sur le fofo si je peux trouver des rep mais si tu as un lien je suis preneur

    Sinon je rencontre un soucis assez ... chiant ^^ j'ai passé 3h30 ce matin dessus mais ça fonctionne tjrs pas. Sur mon client j'ai une liste de contact qui doit se mettre à jour des qu'une nouvelle persone se connecte, le soucis c'est que je trouve pas comment l'actualiser car les connections se font sur le serveur et j'arrive pas à retourner les valeurs de RemotePort et de RemoteAdress, voici mes lignes coté serveur qui se compile mais me fait une belle croix rouge lorsque qu'un client se connecte :

    void __fastcall TServeur::ServerSocket1ClientConnect(TObject *Sender,
    TCustomWinSocket *Socket)
    {
    NbrClients++;
    StatusBar1 -> Panels -> Items[1] -> Text = IntToStr(NbrClients) + " client(s) connecté(s)";
    Memo1 -> Lines -> Add("Connection client: " + Socket -> RemoteAddress +" "+ Socket -> RemotePort);
    for(int i=0;i<ServerSocket1->Socket->ActiveConnections;i++ )
    {
    AnsiString rmtportadd=Socket->RemoteAddress
    +" // "
    +Socket->RemotePort;

    Socket->SendText(rmtportadd);
    }
    }
    de l'autre coté j'ai un ReceiveText que je fais afficher sur ma page de liste.
    Voila, ça devrai fonctionner mais apparemment il aime pas du tout et je vois pas pourquoi.
    Merci pour ton aide bily

Discussions similaires

  1. Lire un AVI sous builder
    Par babozfr dans le forum C++Builder
    Réponses: 3
    Dernier message: 07/03/2005, 09h10
  2. gestion de semaphore sous builder
    Par buzzz dans le forum C++Builder
    Réponses: 3
    Dernier message: 13/02/2005, 12h43
  3. Bug sous builder
    Par Colinbayard dans le forum C++Builder
    Réponses: 3
    Dernier message: 12/01/2005, 09h45
  4. Y as il des fichiers temporaires sous builder
    Par Moutonstar dans le forum C++Builder
    Réponses: 2
    Dernier message: 12/12/2004, 14h24
  5. Chat sous linux
    Par flatron dans le forum Réseau
    Réponses: 5
    Dernier message: 21/07/2004, 20h25

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