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

Android Discussion :

Programmer un tchat (TCP IP)


Sujet :

Android

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    893
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 893
    Par défaut Programmer un tchat (TCP IP)
    salut

    je n'ai pas vu de programme de tchat en temps réel sur android

    est ce compliqué ? ou ?

    que conseillez vous pour utiliser les sockets ?

    j'ai un tchat fonctionnant sous windows et j'aimerais créer un client pour android

    merci

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par Coussati Voir le message
    salut

    je n'ai pas vu de programme de tchat en temps réel sur android
    Facebook messenger, google hangout, skype, des dizaines de clients IRC, autant de client jabber, .....

    T'as pas du recchercher des masses tes clients de chat disponibles

  3. #3
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Le truc c'est qu'un "tchat" au sens "tcp": ouverture de socket, maintien du socket ouvert pendant toute la durée etc... n'est pas possible avec un mobile: changement d'IP fréquent, mise en veille du téléphone (et donc timeout des sockets à priori), etc....

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    893
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 893
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Facebook messenger, google hangout, skype, des dizaines de clients IRC, autant de client jabber, .....

    T'as pas du recchercher des masses tes clients de chat disponibles
    il faut toujours qu'il y ait quelqu'un pour mal interpréter un post, faire comme si ce que l'on cherche existe déjà ou est inutile

    heureusement il y en a comme nicroman qui comprenne le sujet du premier coup

    je poursuis donc avec ceux qui ont compris, nicroman c'est sans doute pourquoi je n'ai jamais vu ce genre de programme ?

    je trouvais aussi qu'il faudrait une certaine rigueur car les sockets (je parle sur pc) sont très strict : la moindre déco et c'est finit

    mais dans ce cas comment font les jeux en ligne ? je suppose que ce n'est pas que de l'udp ?

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par Coussati Voir le message
    il faut toujours qu'il y ait quelqu'un pour mal interpréter un post, faire comme si ce que l'on cherche existe déjà ou est inutile
    J'ai jamais dit que ce que tu fais est inutile. Tu mentionne ne jamais en avoir vu. Moi j'en ai vu tout plein...

  6. #6
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    2 minutes de recherches :
    https://github.com/ubergeek42/weechat-android

    mais dans ce cas comment font les jeux en ligne ? je suppose que ce n'est pas que de l'udp ?
    Comme toute application JAVA de chat... après tu déconnecte le client en fonction de tes besoins. ( Ecran Affiché, Activity en cours, ou Application en cours) à toi de voir.

    Le truc c'est qu'un "tchat" au sens "tcp": ouverture de socket, maintien du socket ouvert pendant toute la durée etc... n'est pas possible avec un mobile:
    C'est possible mais compliqué.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    893
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 893
    Par défaut
    salut

    excusez mon retard, j'étais assez pris ces derniers jours

    Citation Envoyé par tchize_ Voir le message
    J'ai jamais dit que ce que tu fais est inutile. Tu mentionne ne jamais en avoir vu. Moi j'en ai vu tout plein...
    tu peux dans ce cas me donner des exemples de tchat genre salle avec des mobiles connectés en direct ?

    ne me parle pas de skype, ni de whatsapp qui envoie des messages en attendant une réponse (les clients ne sont pas forcément connecté entre eux)

    Citation Envoyé par Feanorin Voir le message
    je sais chercher aussi sur google, je pense que j'aurai trouvé pas mal de source

    cependant je demandais l'avis des membres, qui je pensais utilisaient les sockets lors de leur développement

    c'est comme pour delphi que je pratique, il existe des milliers des composants, mais on a une petite préférence, pour la légèreté / simplicité pour par exemple les anciens compo Tclient/server Socket ou alors les nouveaux compo Indy

    voilà un peu ce que je répondrais à un membre s'il posait la question dans la rubrique delphi

  8. #8
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par Coussati Voir le message


    tu peux dans ce cas me donner des exemples de tchat genre salle avec des mobiles connectés en direct ?
    Fais un recherche sur IRC ou sur jabber dans le store. IRC et Jabber sont des protocole de chat, où tu te connecte à un salon, et tu y envoie les message, et tu reçois ceux des autres utilisateurs connectés.

    Par contre les clients ne sont pas connectés l'un à l'autre (même si IRC a un protocole DCC pour les transferts de fichiers). Ils sont connectés au serveur, qui transfère....

    Tu veux faire du chat en peer to peer? Ca va être vachement compliqué là

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    893
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 893
    Par défaut
    oui c'est quelque chose à la irc qu'il me faut, mais je suppose que irc doit avoir ses propres composant

    pour la connexion, je me suis mal exprimé, je sais que tous les clients seront connectés au serveur qui lui fera le relais et enverra tous les messages

    mais j'ai pris l'exemple de what'sapp car je n'ai pas l'impression que les machines restent connectés en même temps au server, j'ai plus l'impression qu'un client envoie au serveur, et l'autre client une fois connecté au serveur récupère ce qui lui ait destiné ... enfin c'est pas le prob vu que ce n'est pas whatsapp 2 que je veux faire ^^

  10. #10
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Le problème d'un tchat "à la irc", c'est qu'un mobile, par définition, n'est connecté à internet tout le temps, et change assez fréquemment d'ip... (passage 3G/4G/WiFi/...) quand il ne se deconnecte pas du réseau purement et simplement (veille). C'est pourquoi la communication à base de sockets simple est particulièrement inadaptée.

    L'idée est donc d'avoir un serveur oui, mais en mode "connection-less".
    Quand un client se connecte au serveur il ne fait que dire "l'utilisateur X s'est connecté à la room R".
    Quand un client se deconnecte, il ne fait que dire "l'utisateur X est parti de la room R"
    Quand un client envoit un message, etc...

    Ensuite, le serveur va dispatcher à tous les client marqué dans la room R (Y, Z, etc...) que l'utilisateur X s'est connecté, le message qu'il a envoyé, etc.
    Ceci est fait en cloud messaging (ce qui permet de réveiller le téléphone, et de broadcaster à tous les utilisateurs le même message sans s'occuper de grand chose).

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    893
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 893
    Par défaut
    salut nicroman

    Citation Envoyé par nicroman Voir le message
    Le problème d'un tchat "à la irc", c'est qu'un mobile, par définition, n'est connecté à internet tout le temps, et change assez fréquemment d'ip... (passage 3G/4G/WiFi/...) quand il ne se deconnecte pas du réseau purement et simplement (veille). C'est pourquoi la communication à base de sockets simple est particulièrement inadaptée.
    oui on est d'accord pour sur ce point, mais il doit bien avoir de petits jeux en ligne, avec tchat, ect

    je n'ai pas le choix, je dois le faire fonctionner comme un ordi et maintenir la connexion : quitte à faire que déconnecter l'utilisateur à chaque fois qu'il change de moyen de connexion (avec système de reconnexion) / ou alors permettre l'utilisation de mon programme en wifi uniquement (c'est déjà plus fiable)

    Citation Envoyé par nicroman Voir le message
    L'idée est donc d'avoir un serveur oui, mais en mode "connection-less".
    Quand un client se connecte au serveur il ne fait que dire "l'utilisateur X s'est connecté à la room R".
    Quand un client se deconnecte, il ne fait que dire "l'utisateur X est parti de la room R"
    Quand un client envoit un message, etc...

    Ensuite, le serveur va dispatcher à tous les client marqué dans la room R (Y, Z, etc...) que l'utilisateur X s'est connecté, le message qu'il a envoyé, etc.
    Ceci est fait en cloud messaging (ce qui permet de réveiller le téléphone, et de broadcaster à tous les utilisateurs le même message sans s'occuper de grand chose).
    par contre là je n'ai pas très bien compris ce passage là ... tu parles "d'idée" mais justement d'après ce que tu as dis plus haut, ça ne sera pas efficace ?

    pourtant c'est comme ça que je compte faire

    et si tu appelles ça "connection-less" qu'est ce qui serait "connexion-full" ?

  12. #12
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    connection-less veut dire que la connexion avec le serveur n'est que durant la durée d'envoi des évenements.
    connection-full serait, on se connecte au serveur (new socket) et on utilise cette connexion pendant toute la durée du tchat.

    En bref, le serveur peut simplement être écrit en php , et ne maintient pas de connexion avec ses clients.

  13. #13
    Membre confirmé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mai 2011
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 52
    Par défaut le code d'un tchat
    bonjour

    voici le code complet d'un tchat : https://github.com/Pirngruber/AndroidIM

    Comme tu le verras la partie Serveur est en PHP

    cordialement

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    893
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 893
    Par défaut
    nicroman, non il me faut absolument connecter les 2 machines en full (android et serveur)

    quitta à autoriser les connexions uniquement lorsqu'on est en wifi (connexion plus fiable)

    on ne doit pas utiliser le php

    si ce n'est pas possible / facile à réaliser sous android, on pourrait peut sans doute le faire en java (applet) ou flash ?

  15. #15
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 22
    Par défaut Bon pour moi
    Bonjour,

    Pour ma part, je cherchais un chat Android avec serveur PHP, donc ce post et vos réponses m'ont étés utiles.

    Merci.

Discussions similaires

  1. Réponses: 5
    Dernier message: 10/02/2011, 22h14
  2. Réponses: 3
    Dernier message: 13/04/2008, 21h58
  3. programme pour les écoute sur le TCP
    Par yucf_miagiste dans le forum Développement
    Réponses: 1
    Dernier message: 28/12/2007, 13h06
  4. 2 programme 1 C++/1 C les deux TCP/UDP
    Par doommick31 dans le forum C++
    Réponses: 8
    Dernier message: 26/04/2007, 13h38
  5. Programme permettant de créer ses propres paquets TCP/UDP
    Par mat087 dans le forum Développement
    Réponses: 6
    Dernier message: 21/05/2004, 21h42

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