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 :

le transfert de socket


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 2
    Par défaut le transfert de socket
    Bonjour a vous,

    voila je suis nouveau en c# j'essaye de développer un serveur multiThread voici mon code:

    page progame.cs :

    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
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Net;
    using System.Net.Sockets;
    using System.Threading;
    using System.IO;
     
    namespace serverMT
    {
        class Program
        {
     
            public Socket socket {get; set;}
            Gestionnaire gestio = new Gestionnaire();
     
            public Program()
            {
     
                // creation du socket
                Socket ss = new Socket(
                    AddressFamily.InterNetwork,
                    SocketType.Stream,
                    ProtocolType.Tcp);
     
                // creation d'un point d'accès
                IPEndPoint iep = new IPEndPoint(IPAddress.Parse("127.0.0.1"),1234);
                ss.Bind(iep);
                ss.Listen(1);
     
     
                while (true)
                {
                    Socket s = ss.Accept();
                    Thread th = new Thread(gestio.Gestionnaire);
                    th.Start(s);
                }
            }
     
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
     
                new Program();
            }
        }
    }

    page gestionnaire.cs :

    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
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading;
    using System.Net;
    using System.Net.Sockets;
    using System.Threading;
    using System.IO;
     
    namespace serverMT
    {
        class Gestionnaire
        {
            public void Gestionnaire(object o)  <----------------------------------------------------- problème ici (erreur -> Gestionnare : member names cannot be the same as their enclosing type)
            {
                Program pm = o as Program;
                NetworkStream ns = new NetworkStream(pm.socket);
                TextReader tr = new StreamReader(ns);
                TextWriter tw = new StreamWriter(ns);
            }
        }
    }
    en voyant ce code vous aurez devinez que en acceptant la connexion j ouvre un nouveau thread et je lui passe l objet socket je pense que le problème viens d ici.
    merci a tous et a +

  2. #2
    Membre Expert
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 665
    Par défaut
    Bonjour,

    tu as mis un mot-clef "void" a ton constructeur, c'est pour ça que le compilateur fait la gueule. Enlève le et ça devrait aller mieux.

  3. #3
    Membre Expert

    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2009
    Messages
    553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2009
    Messages : 553
    Par défaut
    Citation Envoyé par joadu54500 Voir le message
    en voyant ce code vous aurez devinez que en acceptant la connexion j ouvre un nouveau thread et je lui passe l objet socket je pense que le problème viens d ici
    Oui mais justement, pourrais-tu décrire le problème ? Je suis un être humain, je ne suis pas un compilateur !

Discussions similaires

  1. Réponses: 5
    Dernier message: 04/05/2015, 14h57
  2. transfert de socket entre machines
    Par DakM dans le forum C++
    Réponses: 8
    Dernier message: 20/04/2013, 23h40
  3. Transfert fichier socket Java
    Par othelm123 dans le forum Langage
    Réponses: 1
    Dernier message: 10/11/2011, 14h27
  4. Réponses: 4
    Dernier message: 23/11/2008, 02h05

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