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# Discussion :

Problème envoi/reception serveur client


Sujet :

C#

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Problème envoi/reception serveur client
    Bonjour.

    J'ai crée un jeu en réseau tout simple . Il se joue en local et le but est d'envoyer au serveur (sur lequel on jou aussi) son score de manière a ce que le serveur fasse le calcul et renvoi au client qui a gagné.

    J'ai mis le serveur en écoute en asynchrone , et lorsque je click sur le bouton connection du client je me connect, jusque la pas de soucis.

    Le problème est lors de l'envoi/reception , voila le code :

    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
     
    public void Envoi()
            {
                System.Net.IPAddress ipAdd = new System.Net.IPAddress(IP); // définie l'ip
                System.Net.IPEndPoint EP = new System.Net.IPEndPoint(ipAdd, 503);
                socketCli.SendTo(bufE, EP);
            }
     
            // Fonction de reception de données
            public void Reception()
            {
                socketServ.BeginReceive(bufR, 0, 255, SocketFlags.None, new AsyncCallback(ReceptionCallback), socketServ);
            }
     
            // Fonction d'aquittement de la reception
            public void ReceptionCallback(IAsyncResult result)
            {
                socketServ.EndReceive(result);
            }
    Le problème est que lors de l'appui sur le bouton visant a lancer la fonction de reception( je ne sais toujours pas comment faire une boucle infini qui ne bloque pas le programme donc je fais plein de boutons) , une erreur apparait et dit que le socketServ n'est pas connecté.

    Seulement , comment connecter le serveur au client ? ce qui n'est pas logique finalement , bref je suis un peu perdu avec ce problème .Je pensais que la connection était réciproque et non qu'il fallai faire de meme dans l'autre sens ce qui met en péril le principe serveur/Client , je pense donc être passé a coté de la solution sans m'en rendre compte.
    Cette apply est mon Projet de deuxième année et je vous avous avoir débuté cette année le c# donc je ne suis pas très fort.

    Savez vous d'ou vient le problème svp?

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Février 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 114
    Points : 140
    Points
    140
    Par défaut
    Bonjour.

    Pour faire en sorte que la réception des données 'boucle' sans bloquer ton programme, tu peux rajouter un appel a BeginReceive à la fin de ta méthode de callback.
    Ensuite, je me demande si tu connais comment fonctionne exactement un serveur.
    Tu dois créer une socket, la lier à un port et attendre une connexion sur cette socket.
    Une fois qu'un client se connecte, tu obtient une nouvelle socket grâce à laquelle tu pourras communiquer avec ton client.
    Voila un petit exemple :

    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
     
    void startListenning(int port)
    {
        Socket socketServ = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        Socket socketClient = null;
        IPEndPoint iepAddress = new IPEndPoint(IPAddress.Any, port);
     
        socketServ.Bind(iepAddress);
        socketServ.Listen(0);
        while (1)
        {
            socketClient = socketServ.Accept();
            socketClient.BeginReceive(bufR, 0, 255, SocketFlags.None, new AsyncCallback(ReceptionCallback), socketClient);
        }
    }
     
    // Fonction d'aquittement de la reception
    public void ReceptionCallback(IAsyncResult result)
    {
        Socket curClient = (Socket)result.AsyncState;
        curClient.EndReceive(result);
     
        // ton traitement
     
        // pense bien a donner un buffer par client si tu gère plusieurs clients.
        curClient.BeginReceive(bufR, 0, 255, SocketFlags.None, new AsyncCallback(ReceptionCallback), curClient);
    }

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    J'ai un autre problème , je me demandais comment faire pour faire marcher une boucle infinie .
    LOrsque je click sur mon bouton écoute , le programme se bloque toujours.

Discussions similaires

  1. [Débutant] Problème Envoi/reception de donnee par socket
    Par Kisskool83 dans le forum VB.NET
    Réponses: 2
    Dernier message: 30/06/2011, 13h11
  2. Problème transfert fichier Serveur-Client
    Par ramdamriddim dans le forum Plateformes (Java EE, Jakarta EE, Spring) et Serveurs
    Réponses: 0
    Dernier message: 22/12/2009, 12h20
  3. probleme envoi donnees serveur/client
    Par Romanzo_Criminale dans le forum C++
    Réponses: 5
    Dernier message: 24/09/2009, 23h20
  4. Problème de programme serveur/client
    Par Khnade dans le forum Réseau/Web
    Réponses: 4
    Dernier message: 07/08/2008, 21h22
  5. Web Services - Problème de communication serveur/client
    Par vern's dans le forum Web & réseau
    Réponses: 9
    Dernier message: 27/08/2007, 10h06

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