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 :

[C#] Comment implémenter la connexion Client/Serveur ?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de ArHacKnIdE
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 947
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 947
    Par défaut [C#] Comment implémenter la connexion Client/Serveur ?
    Bonjour à Tous,

    Voilà j'ai ce code, qui il me semble créer un serveur local, dans mon cas ouvre le port 11000, ce code a l'air de fonctionner :

    string message = "Salut et bienvenue sur le serveurr!";

    try
    {
    Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    serverSocket.Bind(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 11000));

    serverSocket.Listen(1);

    Socket clientSocket;
    byte[] buffer = new byte[1024];
    int count;

    while ((clientSocket = serverSocket.Accept()) != null)
    {

    count = clientSocket.Receive(buffer, 0, 1024, SocketFlags.None);
    Console.WriteLine(Encoding.ASCII.GetString(buffer, 0, count));

    clientSocket.Send(Encoding.ASCII.GetBytes(message), 0, message.Length, SocketFlags.None);
    clientSocket.Close();
    }

    }
    catch (Exception e)
    {
    Console.Error.WriteLine(e.Message);
    }

    Console.In.ReadLine();
    Mais J'aimerai bien maintenant pouvoir créer le client et que quand je me connecte au serveur(depuis le client) je puisse voir apparaitre le message "Salut et Bienvenue..." sur l'application client.

    Mais l'application client est celle qui me pose problème, j'ai fait ça :

    System.Net.Sockets.TcpClient tcpclient = null;

    tcpclient = new System.Net.Sockets.TcpClient("127.0.0.1", 11000);

    Console.In.ReadLine();
    Qui n'a pas l'air de fonctionner

    Je fais les tests des serveurs et clients sur le même PC.

    Merci pour toute aides.

    J'aimerai réaliser un petit messenger pour un réseau local en C# mais pour l'instant il faut que j'arrive à faire des applications Client/Serveur.

    Merci

  2. #2
    Membre Expert
    Avatar de ArHacKnIdE
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 947
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 947
    Par défaut
    Alors j'ai fait mon client comme ceci :

    try
    {

    Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    clientSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 3000);

    clientSocket.Connect(new IPEndPoint(Dns.GetHostByName("127.0.0.1").AddressList[0], 11000));

    clientSocket.Close();

    }
    catch (Exception e)
    {
    Console.Error.WriteLine(e.Message);
    }


    Console.In.ReadLine();
    La connexion a l'air de passer mais sur le programme client, je ne vois pas la phrase de bienvenue du serveur

    Merci

  3. #3
    Membre Expert
    Avatar de ArHacKnIdE
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 947
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 947
    Par défaut
    Pour verifier que la connexion passe bien avec le serveur(premier post ),
    j'ai fait ça comme CLient :


    System.Net.Sockets.TcpClient tcpclient = null;

    try
    {
    tcpclient = new TcpClient("127.0.0.1", 11000);
    Console.Out.WriteLine("Connect Reussi !");

    }
    catch
    {
    Console.Out.WriteLine("Pas reussi ");
    }
    finally
    {
    if (tcpclient != null)
    {
    tcpclient.Close();
    }
    }
    Et il m'affiche "Connect Reussi !", c'est que ça passe bien

    Mais comment arriver à voir le message de bienvenue du serveur sur l'application cliente ?

    Merci

  4. #4
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Par défaut
    Bonjour,

    Beau monologue
    Pour recevoir les données du serveur, il faut que tu inities une lecture coté client (fonction Receive)
    Il y a tout ce qu'il faut sur la page cours pour les sockets (cherche réseau)
    Notemment cette introduction http://dotnet.developpez.com/tutoriels/reseau/

    http://dotnet.developpez.com/cours/

  5. #5
    Membre Expert
    Avatar de ArHacKnIdE
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 947
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 947
    Par défaut
    Merci je vais me mettre à la lecture

    Alors en fait je viens de redescendre d'un cran là

    J'ai dit que ça fonctionné les deux sur la même machine.

    Alors j'ai mis le programme serveur sur un ordi de mon réseau(192.168.1.186)
    puis le programme client sur mon ordi, j'ai désactivé tous les parefeux.

    Mais le client n'arrive pas à se connecter alors qu'il réussissait avec les deux programmes sur la même machine

    J'ai donc là :

    Sur le PC Client le programme :

    System.Net.Sockets.TcpClient tcpclient = null;

    try
    {
    tcpclient = new TcpClient("192.168.1.186", 11000);
    Console.Out.WriteLine("Connect Reussi !");

    }
    catch
    {
    Console.Out.WriteLine("Pas reussi ");
    }
    finally
    {
    if (tcpclient != null)
    {
    tcpclient.Close();
    }
    }
    Et sur le PC Serveur le programme :

    string message = "Salut et bienvenue sur le serveurr!";

    try
    {
    Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    serverSocket.Bind(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 11000));

    serverSocket.Listen(1);

    Socket clientSocket;
    byte[] buffer = new byte[1024];
    int count;

    while ((clientSocket = serverSocket.Accept()) != null)
    {

    count = clientSocket.Receive(buffer, 0, 1024, SocketFlags.None);
    Console.WriteLine(Encoding.ASCII.GetString(buffer, 0, count));

    clientSocket.Send(Encoding.ASCII.GetBytes(message), 0, message.Length, SocketFlags.None);
    clientSocket.Close();
    }

    }
    catch (Exception e)
    {
    Console.Error.WriteLine(e.Message);
    }

    Console.In.ReadLine();
    Pourquoi la connexion ne s'etablit plus ?

    Merci

  6. #6
    Membre Expert
    Avatar de ArHacKnIdE
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 947
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 947
    Par défaut
    En fait j'ai pas l'impression que le serveur ouvre bien le port 11000 et le met en écoute

    J'ai passé un logiciel de scan de ports et il ne trouve pas le port 11000 d'ouvert sur le serveur, c'est que mon programme serveur de doit pas être au top, peut-être c'est pas 127.0.0.1 qu'il faut mettre ?

    Merci

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

Discussions similaires

  1. connexion client serveur en j2me
    Par unidach dans le forum Java ME
    Réponses: 2
    Dernier message: 29/06/2007, 18h56
  2. Réponses: 2
    Dernier message: 14/05/2007, 22h35
  3. [Réseau] connexion client/serveur
    Par Creuvard dans le forum Réseau
    Réponses: 31
    Dernier message: 09/01/2007, 12h48
  4. [SOCKET] connexion client serveur avec applet
    Par kaiser2003 dans le forum Applets
    Réponses: 2
    Dernier message: 06/10/2004, 22h32
  5. comment gerer plusieurs connexions client/serveur
    Par naili dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/08/2002, 16h58

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