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 :

Recevoir info en Client/serveur


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 2
    Par défaut Recevoir info en Client/serveur
    Bonjour,

    Je développe actuellement une appli Client/Serveur, c'est vraiment pour commencer...

    J'utilise les Socket, j'arrive a connecter les deux cotés, maintenant je voudrais envoyer un message à l'autre...

    Voila mon code pour le 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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Option Strict On
     
    Imports System
    Imports System.io
    Imports System.Net
    Imports System.Net.Sockets
     
    Public Class Form2
        Inherits System.Windows.Forms.Form
     
        Private Client As New System.Net.Sockets.Socket(Net.Sockets.AddressFamily.InterNetwork, Net.Sockets.SocketType.Stream, Net.Sockets.ProtocolType.IP) 'trafic ip standard
        Friend WithEvents Button1 As System.Windows.Forms.Button
        Dim addr As System.Net.IPAddress
     
        Private Sub connexion_acceptee(ByVal ar As IAsyncResult)
            Client.EndConnect(ar)
            MsgBox("client : " & Client.Connected)
        End Sub
     
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            addr = addr.Parse("192.168.2.2")
            Client.BeginConnect(New IPEndPoint(addr, 150), New System.AsyncCallback(AddressOf connexion_acceptee), Client)
     
        End Sub
     
        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
            'Dim Message As [Byte]() = System.Text.Encoding.ASCII.GetBytes("Test envoi de données")
            'Dim OctetsEnvoyes As System.Int64 = Client.Send(Message, 0, Message.Length, SocketFlags.None)
            Dim msg As [Byte]() = System.Text.Encoding.ASCII.GetBytes("Test envoi de données")
            Dim i As Integer = Client.Send(msg, 0, msg.Length, SocketFlags.None)
            'Console.WriteLine("Sent {0} bytes.", i)
            MsgBox(i)
        End Sub
    End Class
    Et coté 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
    Imports System
    Imports System.Net
    Imports System.Net.sockets
     
    Public Class Form1
        Inherits System.Windows.Forms.Form
     
        Private Serveur As New System.Net.Sockets.Socket(Net.Sockets.AddressFamily.InterNetwork, Net.Sockets.SocketType.Stream, Net.Sockets.ProtocolType.IP)
     
        Private Sub connexion_requested(ByVal ar As System.IAsyncResult)
            Serveur.EndAccept(ar)
            MessageBox.Show("Connexion Acceptée")
        End Sub
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim Form2 As New Form2
            Form2.Show()
     
            Dim Addr As IPAddress
            Dim hostIP As System.Net.IPAddress = Addr.Parse("192.168.2.2")
            Dim ep As New System.Net.IPEndPoint(hostIP, 150)
     
            Serveur.Bind(ep)
            Serveur.Listen(1)
            Serveur.BeginAccept(New System.AsyncCallback(AddressOf connexion_requested), Serveur)
        End Sub
     
        Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Timer1.Enabled = True
        End Sub
    End Class
    Comment faire pour récupérer le message du client ?
    Ce code c'est de la récup d'un peu partout sur le net, j'essaye de comprendre en meme temps, j'attaque direct un truc compliqué je pense mais bon, si quelqu'un peut me filer un coup de pouce ca serait cool...

    Merci d'avance

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    en effet c'est un peu tordu à comprendre les callback


    sinon pour envoyer c'est socket.send
    et le probleme c'est pour recevoir, il faut faire un beginreceive une fois que la connexion est établie
    et en gros au moment ou il y a receive ca va aller dans la sub que tu as dit sur le beginreceive
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 2
    Par défaut
    Voila une source qui me fallait, c'est bien avec BeginReceive mais c'est quand meme complexe

    http://vincentlaine.developpez.com/t...nchrone/vbnet/

    a+

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    surtout quand on a connu winsock (il est possible de créer un genre de winsock avec ca)

    sinon winsock doit etre encore utilisable en ajoutant la référence à la dll
    le principe c'est que le control a des évènements (type request_accept et data_arrival)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. Réponses: 5
    Dernier message: 26/01/2007, 15h58
  2. [Info] Application Client serveur
    Par Rocket dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 24/03/2006, 19h48
  3. [Info]Application client/Serveur utilisant JDBC
    Par freaky_boy dans le forum JDBC
    Réponses: 2
    Dernier message: 10/03/2006, 19h13
  4. [Indy] Client-serveur pour recevoir des flux videos
    Par Nicodemus dans le forum Web & réseau
    Réponses: 7
    Dernier message: 10/10/2005, 14h18
  5. [infos]connexion applet client+serveur
    Par freums dans le forum Applets
    Réponses: 5
    Dernier message: 25/08/2005, 09h57

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