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

VB.NET Discussion :

Envoie de message


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 196
    Par défaut Envoie de message
    bonjour à tous,
    voilà je travaille avec vb 2008 et je veux réalisre une application P2P pour un réseau local donc j'ai réalisé une application client / seveur, je voudrais faire du client un serveur et de serveur un client; je m'explique :
    un P2P c de client / serveur avec tout le monde serveur donc au démarrage tout le monde est serveur mais lors de l'envoie d'un message l'un est client et l'autre est un serveur le probloème ce résume là
    je n'ai pas arrivé à le faire malgré tout le seforts que j'ai mis hélas rien ne marche voilà un bout de code que j'ai fait :

    serveur :

    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
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
            Call serveur()
        End Sub
     
        Public Sub serveur()
            NotifyIcon1.Visible = True
            NotifyIcon1.BalloonTipIcon = ToolTipIcon.Info
            NotifyIcon1.BalloonTipText = "Cette le serveur est ici marche bien"
            NotifyIcon1.ShowBalloonTip(20)
            ip = IPAddress.Parse("127.0.0.1")
     
            ecoute = New TcpListener(ip, port)
            ecoute.Start()
            Me.Text = "Ecoute .."
     
            clt = ecoute.AcceptTcpClient()
            NotifyIcon1.BalloonTipText = "Un client vient de se connecter"
            NotifyIcon1.ShowBalloonTip(20)
            Dim NWStream As NetworkStream = clt.GetStream
            Const BUFFER_SIZE As Integer = 10
     
            Dim bytesToRead(BUFFER_SIZE) As Byte
            '---read incoming stream
            Dim textReceived As String = ""
     
            Do
                Dim numBytesRead As Integer = _
                    NWStream.Read(bytesToRead, 0, BUFFER_SIZE)
                textReceived += Encoding.ASCII.GetString(bytesToRead, _
                                0, numBytesRead)
            Loop Until Not NWStream.DataAvailable
            NWStream.Flush()
            RB_recu.Text += "Received :" + textReceived
        End Sub
     
        Public Sub client()
            clt.Connect("127.0.0.1", port)
            NotifyIcon1.Visible = True
            NotifyIcon1.BalloonTipText = "Le client a démarré"
            NotifyIcon1.ShowBalloonTip(50)
        End Sub
     
        Private Sub cmd_envoie_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_envoie.Click
            If Rb_envoie.Text <> "" Then
                Dim NWStream As NetworkStream = clt.GetStream
                Dim bytesToSend As Byte() = Encoding.ASCII.GetBytes(Rb_envoie.Text)
     
                MessageBox.Show("Le message : " & Rb_envoie.Text & " a été envoyé", "", MessageBoxButtons.OK)
                NWStream.Write(bytesToSend, 0, bytesToSend.Length)
                NotifyIcon1.BalloonTipText = "Le client a envoyé le message"
                NotifyIcon1.ShowBalloonTip(50)
                RB_recu.Text += "Le client dit : " + vbCrLf + vbCrLf + Rb_envoie.Text
                Rb_envoie.Text = ""
                NWStream.Flush()
            End If
        End Sub
    client :

    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
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            clt.Connect("127.0.0.1", port)
            NotifyIcon1.Visible = True
            NotifyIcon1.BalloonTipText = "Le client a démarré"
            NotifyIcon1.ShowBalloonTip(50)
        End Sub
     
        Private Sub cmd_envoye_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_envoye.Click
            Call mess()
        End Sub
     
        Public Sub mess()
            If rb_envoie.Text <> "" Then
                Dim NWStream As NetworkStream = clt.GetStream
                Dim bytesToSend As Byte() = Encoding.ASCII.GetBytes(rb_envoie.Text)
                '---send the text
                MessageBox.Show("Le message : " & rb_envoie.Text & " a été envoyé", "", MessageBoxButtons.OK)
                NWStream.Write(bytesToSend, 0, bytesToSend.Length)
                NotifyIcon1.BalloonTipText = "Le client a envoyé le message"
                NotifyIcon1.ShowBalloonTip(50)
                Rb_recu.Text += "Le client dit : " + vbCrLf + vbCrLf + rb_envoie.Text
                rb_envoie.Text = ""
                NWStream.Flush()
            End If
        End Sub
    et aussi le serveur n'accepte qu'un seul message c tout

    merci pour votre aide

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 196
    Par défaut
    Pas la peine les amis j'ai trouvé une autre solution

  3. #3
    Membre éprouvé Avatar de Sendusha
    Femme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2006
    Messages : 55
    Par défaut
    La solution pourrait être utile aux autres. Merci de la poster.

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 196
    Par défaut
    voilà la solution oublier se que j'ai écrit là haut :

    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
    Dim Listener As New TcpListener(IPAddress.Any, 65535)
        Dim Client As New TcpClient
        Dim Message As String = ""
     
     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim ListThread As New Thread(New ThreadStart(AddressOf Listening)) 
            ListThread.Start() 
        End Sub
        Public Sub Listening()
            Listener.Start()
        End Sub
     
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            Try
                If Listener.Pending = True Then
     
                    Message = ""
                    Client = Listener.AcceptTcpClient()
     
                    Dim Reader As New StreamReader(Client.GetStream())
                    While Reader.Peek > -1
                        Message = Message + Convert.ToChar(Reader.Read()).ToString
                    End While
     
                    RichTextBox2.Text = (RichTextBox2.Text + Message + vbCrLf)
     
                End If
            Catch ex As Exception
     
            End Try
     
        End Sub
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Client = New TcpClient("127.0.0.1", 6553)
     
            Dim Writer As New StreamWriter(Client.GetStream())
            Writer.Write(RichTextBox1.Text)
            Writer.Flush()
        End Sub
     
        Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
            Listener.Stop()
        End Sub
    voilà c ca
    biensure n'oublier pas le imports au premier lieu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Imports System.Net.Sockets
    Imports System.Threading
    Imports System.IO
    Imports System.Net

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

Discussions similaires

  1. Envoi de message
    Par bendev dans le forum ASP
    Réponses: 5
    Dernier message: 11/10/2004, 11h40
  2. Envoi de message entre 2 applications
    Par floweez dans le forum Windows
    Réponses: 9
    Dernier message: 30/06/2004, 16h34
  3. [MFC] Envoi de message
    Par leskritiques dans le forum MFC
    Réponses: 5
    Dernier message: 29/04/2004, 11h26
  4. Réponses: 13
    Dernier message: 14/01/2004, 16h35
  5. Envoi de messages MS DOS avec le IP
    Par asphp dans le forum Développement
    Réponses: 6
    Dernier message: 07/01/2004, 16h11

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