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 :

[System.Net.Sockets.TcpListener] multi port


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2004
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 128
    Par défaut [System.Net.Sockets.TcpListener] multi port
    bonjour,

    je voulais savoir si il était possible de surveiller plusieurs port avec une seul instance de TcpListener ?

    D'autrepart, SharpDevelop me sort un message d'erreur a la compil de mon projet que j'ai bien du mal a comprendre :
    Program 'c:\Users\...\bin\Debug\monProjet.exe' does not have an entry point defined(CS5001)
    merci d'avance

  2. #2
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    Ca voudrait dire que tu n'as pas de point d'entrée.
    Pour info, un point d'entrée est typiquement une méthode "main", vérifie la signature de celle-ci.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2004
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 128
    Par défaut
    oki, merci, j'avais enlevé l'attribut 'static' de la méthode 'main' pour pouvoir appeler une autre méthode avec this.maMethode, jvais trouvé autre chose.

    Sinon pour mon TcpListener, je vais devoir en faire autant que j'ai de port à surveiller ?

  4. #4
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    Sauf erreur de ma part, oui.

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2004
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 128
    Par défaut
    erf, oki

    je pose quand même mon code en espèrant qlq suggestion, car là jme retrouve avec 4 TcpListener, 4 TcpClient et 4 NetworkStream.

    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
     
    		protected override void OnStart(string[] args)
    		{
    			Log("Démarrage...");
    			ipLocal = IPAddress.Parse("127.0.0.1");
    			numPort = 135;
    			reception = new System.Net.Sockets.TcpListener(ipLocal,numPort);
    			numPort = 137;
    			reception2 = new System.Net.Sockets.TcpListener(ipLocal,numPort);
    			numPort = 138;
    			reception3 = new System.Net.Sockets.TcpListener(ipLocal,numPort);
    			numPort = 139;
    			reception4 = new System.Net.Sockets.TcpListener(ipLocal,numPort);
    			Log("TCPListener ok...");
     
    			reception.Start();
    			reception2.Start();
    			reception3.Start();
    			reception4.Start();
    			Log("TCPListener en écoute...");
     
    			ThreadStart st = new ThreadStart(ThreadSurveillance);
    		 	workerThread = new Thread(st);
    			ServiceStarted = true;
    			Log("Thread initialisé...");
    			workerThread.Start();		
    		}
     
    		protected void ThreadSurveillance()
    		{
    			Log("Entrée dans thread...");
    			try 
    			{
    				while (ServiceStarted)
    				{
    					TcpClient client = reception.AcceptTcpClient();
    			        TcpClient client2 = reception2.AcceptTcpClient();
    			        TcpClient client3 = reception3.AcceptTcpClient();
    			        TcpClient client4 = reception4.AcceptTcpClient();
     
    			        string data = "";
    			        byte[] bytes = new byte[1024];
     
    			        NetworkStream stream = client.GetStream();
    			        NetworkStream stream2 = client2.GetStream();
    			        NetworkStream stream3 = client3.GetStream();
    			        NetworkStream stream4 = client4.GetStream();
     
    			        int i;
     
    			        while((i = stream.Read(bytes, 0, bytes.Length))!=0) 
    			        {   
    			          data += System.Text.Encoding.ASCII.GetString(bytes, 0, i);
    			        }
     
    			        while((i = stream2.Read(bytes, 0, bytes.Length))!=0) 
    			        {   
    			          data += System.Text.Encoding.ASCII.GetString(bytes, 0, i);
    			        }
     
    			        while((i = stream3.Read(bytes, 0, bytes.Length))!=0) 
    			        {   
    			          data += System.Text.Encoding.ASCII.GetString(bytes, 0, i);
    			        }			        
     
    			        while((i = stream4.Read(bytes, 0, bytes.Length))!=0) 
    			        {   
    			          data += System.Text.Encoding.ASCII.GetString(bytes, 0, i);
    			        }			        
     
    			        data = data.ToUpper();
    			          ShowMsg(data);
     
    			        client.Close();
    			     }
    			}
    			catch (Exception ex)
    			{
    				Log(ex.Message +" / "+ ex.StackTrace);
    			}
    			Thread.CurrentThread.Abort();
    		}
    J'ai le pressentiment qu'il y a mieux à faire (bien que pour mon cas ça n'est pas très grave car je n'ais que 4 port à surveiller)

  6. #6
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    Je suis presque sur, sans tester que les seuls clients qui peuvent se connecter sont ceux qui le font sur 135.

    Et quand bien meme, ils ne franchissent pas une ligne

Discussions similaires

  1. Actualiser requete TcpClient() "System.Net.Sockets"
    Par vincent1890 dans le forum VB.NET
    Réponses: 7
    Dernier message: 18/11/2012, 18h54
  2. [c#] utilisation de System.Net.Socket
    Par TERRIBLE dans le forum Framework .NET
    Réponses: 1
    Dernier message: 21/12/2009, 09h35
  3. [System.Net.Sockets] Connexion via un proxy
    Par kendras dans le forum Développement
    Réponses: 15
    Dernier message: 17/02/2009, 14h52
  4. [VB.NET] [Socket] Tester si un port est ouvert ?
    Par Aspic dans le forum VB.NET
    Réponses: 25
    Dernier message: 07/01/2008, 09h25
  5. system.net : converti net.iphostentry en socket.socketexception
    Par gotenks007 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/12/2007, 20h06

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