Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1880 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [ VB.net ] besoin d'aide pour créer une dll

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ VB.net ] besoin d'aide pour créer une dll

n°1037510
jeoff
Posté le 06-04-2005 à 15:14:54  profilanswer
 

Bonjour,
 
Depuis mon dernier topic j'ai (un peu) avancé.
J'ai réussi à créer une connexion entre mon serveur et mon client en mode synchrone.
 
Problème, mon serveur/client sont bloqués pendant la réception/envoi de messages.
 
J'ai donc regardé du côté asynchrone. Mais je suis un peu largué sur les histoires de CallBack.
Après de nombreuses recherches je suis tombé sur plusieurs sites sympathiques dont celle-ci : http://vincentlaine.developpez.com [...] one/vbnet/
 
Plutôt que de repartir de 0, (j'ai essayé mais sans succès :/) je voudrai utiliser le code proposé puis le modifier afin d'en faire une dll.
 
 
Le hic c'est que je n'arrive pas à récupérer les messages du genre "client connecté" depuis la dll. Je ne sais pas comment modifier le code pour la dll ni comment modifier le code pour recevoir les msg dans mon appli finale.
 
Voici un extrait du code original avec les parties "litigieuses".
 

Code :
  1. Imports System
  2. Imports System.Net
  3. Imports System.Net.Sockets
  4. Imports System.Text
  5. Imports System.Windows.Forms
  6. Namespace Serverside
  7.     Public Class ServerClass
  8.         Private SocketServer As Socket
  9.         Private SocketClient As Socket
  10.         Private LocalsocketClientIsShutingDown As Boolean = False
  11.         Private readbuf As Byte()
  12.         Private sendbuf As Byte()
  13.         Private listBox As ListBox
  14.         Private Delegate Sub DelegateDisplay(ByVal message As String)
  15.         Private dlgDisplay As DelegateDisplay = New DelegateDisplay(AddressOf DisplayMessage)
  16.         Private Sub ReceiveMessageCallback(ByVal asyncResult As IAsyncResult)
  17.             Dim displaydata As String()
  18.             Try
  19.                 Dim socket As Socket = CType(asyncResult.AsyncState, Socket)
  20.                 Dim read As Integer = socket.EndReceive(asyncResult)
  21.                 If read > 0 Then
  22.                     displaydata = New String() {"Client dit : " + Encoding.ASCII.GetString(Me.readbuf)}
  23.                     Me.listBox.Invoke(dlgDisplay, displaydata)
  24.                     Buffer.SetByte(Me.readbuf, 0, 0)
  25.                     Me.SocketClient.BeginReceive(Me.readbuf, 0, Me.readbuf.Length, SocketFlags.None, AddressOf ReceiveMessageCallback, Me.SocketClient)
  26.                 End If
  27.                 If read = 0 AndAlso Not Me.LocalsocketClientIsShutingDown Then
  28.                     socket.Close()
  29.                     displaydata = New String() {"Socket distante fermée."}
  30.                     Me.listBox.Invoke(dlgDisplay, displaydata)
  31.                     Me.SocketServer.BeginAccept(AddressOf ConnectionAcceptCallback, Me.SocketServer)
  32.                 End If
  33.             Catch ex As SocketException
  34.                 displaydata = New String() {ex.Message}
  35.                 Me.listBox.Invoke(dlgDisplay, displaydata)
  36.             End Try
  37.         End Sub
  38.         Private Sub SendCallback(ByVal asyncResult As IAsyncResult)
  39.             Dim listdata As String()
  40.             Try
  41.                 Dim socket As Socket = CType(asyncResult.AsyncState, Socket)
  42.                 Dim send As Integer = socket.EndSend(asyncResult)
  43.                 listdata = New String() {"Message envoyé (" + send.ToString() + " octets)"}
  44.                 Me.listBox.Invoke(dlgDisplay, listdata)
  45.             Catch ex As SocketException
  46.                 listdata = New String() {ex.Message}
  47.                 Me.listBox.Invoke(dlgDisplay, listdata)
  48.             End Try
  49.         End Sub
  50.         Private Sub DisplayMessage(ByVal message As String)
  51.             Me.listBox.Items.Add(message)
  52.             Me.listBox.SelectedIndex = Me.listBox.Items.Count - 1
  53.         End Sub
  54.     End Class
  55. End Namespace


 
EDIT : Je ne comprends pas l'utilité de la listbox :/
 
Je ne sais pas comment rediriger "listdata" "displaydata" ou que faire du sub "displaymessage".
 
Merci de partager vos connaissances :)


Message édité par jeoff le 06-04-2005 à 15:40:32
mood
Publicité
Posté le 06-04-2005 à 15:14:54  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [ VB.net ] besoin d'aide pour créer une dll

 

Sujets relatifs
Besoin d'aide sur un code.[J2ME] Besoin d'explication sur les données persistentes
créer une page automatiquedemande d'aide
Erreur : "L'assistant ne sait pas créer votre état." Access 2003aide de requête sous access 2002
Créer et jouer un javax.sound.midi.Tracka l'aide ... je ne trouve pas :s
Aide solution requete ... pas trop compliqué mais bon ... ;-) 
Plus de sujets relatifs à : [ VB.net ] besoin d'aide pour créer une dll


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR