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

Windows Forms Discussion :

[C#] Serveur chat


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Par défaut [C#] Serveur chat
    Hello,

    Voila j'ai deja realisé un chat en java et je voulais faire la meme chose dans ce language ci.

    Mais j'ai des petit probleme, je n 'arrive pas a interragir avec l'interface et je ne comprend pas bien une ligne.

    Voila le code je me suis inspirer d'un tuto...

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    using System.Text;
    using System;
    using System.Net;
    using System.Threading;
    using System.Net.Sockets;
     
    namespace reseau
    {
    	/// <summary>
    	/// Description Résumé de Class.
    	/// </summary>
     
    	public class network
    	{
     
    		public string etat;
     
    		public network()
    		{
    			etat = Ecoute();
    		}
     
     
    		private string Ecoute(){
     
    			try{
    				  System.Net.Sockets.TcpListener server = new TcpListener(System.Net.IPAddress.Parse("127.0.0.1"),333);
     
    				  server.Start();
     
    				  while(true){
    					while(!server.Pending()){
    						Thread.Sleep(500);
    					}
     
    					TcpClient newClient;
     
    					if((newClient = server.AcceptTcpClient())==null){
    						break;
    					}
    					newClient.GetStream().Write(Encoding.ASCII.GetBytes("Bye Bye"),0,8);
    					newClient.Close(); //cette ligne ci
    				 }
     
    				server.Stop();
     
    				return "Server deconnecté";
    			}
    			catch(Exception e){
    				return "Erreur Server";
    			}
    		}
     
    		/*public static void main(){
    			network n = new network();
    		} */
     
    	}
    }
    donc j'ai mon projet qui s appel reseau et cette class ci network.

    Donc j'aimerais pouvoir juste afficher dans mon cadre le message recu et bien comprendre la ligne que j'ai indiqué.

    Merci ++

  2. #2
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Par défaut
    Salut !

    le newClient.Close() ne fait que fermer l'écoute sur le port indiqué par l'instant de la classe TcpListener.

    Sinon fait attention au règles du forum

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Par défaut
    Non c'est la ligne juste au dessus que je ne comprend pas.
    Et comment interragir avec l interface.
    En java c'est nomdelaclass.nommethode mais ici sa marche pas.

    J'ai enfrein une regle ???

  4. #4
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Par défaut
    Salut !

    hum fait gaffe ton commentaire est sur le ligne .close().

    Sinon la ligne au dessus ecrit sur le flux du tcp les caracteres de la chaine mais avant la fonction
    ncoding.ASCII.GetBytes("Bye Bye") permet de convertir ta string en tableau de byte qui pourront etre envoyé par le réseau

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Par défaut
    Ho ok donc sa envoie bye bye sur le reseau, moi ce que je voulais faire c t revevoir une phrase comment fais on alors pcq ca c pas expliquer sur le tuto

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 141
    Par défaut
    avec un streamreader et un streamwriter sur le networkstream tu as les methodes writeline et readline je pense
    faudrait tester pcq je suis pas sûr à 100%

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Par défaut
    Comme je l ai dit je comme seulement en c# donc soyer indulgent et plus detailler si possible :p

    j'ai commence hier donc j'ai pas encore tout saisi et si on pouvais repondre aussi a la question comment interragir entre inerface et les autres classes
    genre la class permet d afficher dans un label helloworld...

  8. #8
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Citation Envoyé par Dokho1000
    genre la class permet d afficher dans un label helloworld...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tonlabel.Text = "HelloWorld";



    C# est très très ressemblant à Java: si tu connais bien Java, prends un bon bouqui sur le C# et tu le maitriseras très vite

  9. #9
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Par défaut
    Non ca marche pas tu pense bien que j ai deja essaye.
    Ca marche si je suis dans la classe de mon application (winform)
    mais si je cree une nouvelle class et que avec celle ci je veux change le label de l application ben la ca marche pas.

    En somme, jai mon fichier Winform.cs (qui contienr l interface visuel) et j'ai ma class network et donc quand je recois un message dans la class network il faut que je l affiche dans winforms donc comme je fais je suis sur que c'est tout bete mais je trouve pas :s

  10. #10
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Citation Envoyé par Dokho1000
    Non ca marche pas tu pense bien que j ai deja essaye.
    Ca marche si je suis dans la classe de mon application (winform)
    mais si je cree une nouvelle class et que avec celle ci je veux change le label de l application ben la ca marche pas.

    En somme, jai mon fichier Winform.cs (qui contienr l interface visuel) et j'ai ma class network et donc quand je recois un message dans la class network il faut que je l affiche dans winforms donc comme je fais je suis sur que c'est tout bete mais je trouve pas :s
    Il te faut faire un accesseur (getter/setter) vers ton label, dans ta classe windowsforms.

    Ensuite, dans ta classe network, tu instancies ta classe Winform et tu peux appeller l'accesseur.

  11. #11
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Par défaut
    Je comprend pas j'ai fas comme ca.
    Donc dans winform

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    private System.Windows.Forms.Label l1;
     
    ....
     
    public string label{
    			get { return l1.Text; }
    			set { l1.Text = value;}
    		}
     
    ...

    Et network

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ....
    WinForm tst = new WinForm();
     tst.label = "test";
    ...
    Le text change tjrs pas :s !

  12. #12
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Par défaut
    Personne ne voit?

  13. #13
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Autre technique:

    dans le construceut de ta classe network, tu passes une référence à ta classe winform et tu travailles ensuite avec: là, cela devrait marcher.

  14. #14
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Par défaut
    Oki c'est quand un pointeur en fait une reference non?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer son propre serveur de Chat
    Par kevinf dans le forum IRC / mIRC
    Réponses: 54
    Dernier message: 16/04/2008, 10h36
  2. Probleme serveur de chat
    Par killuaster dans le forum Langage
    Réponses: 0
    Dernier message: 24/07/2007, 01h34
  3. exclusion mutuelle dans un serveur de chat
    Par aminego dans le forum Réseau
    Réponses: 9
    Dernier message: 20/11/2006, 00h12
  4. Panne du serveur Blogs/chat -> Panne terminée
    Par Marc Lussac dans le forum Evolutions du club
    Réponses: 2
    Dernier message: 24/09/2006, 14h29

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