Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 2019
-
19 mars 2007 à 10:54
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 2019
-
19 mars 2007 à 12:55
Bonjour,
Comme le dit le titre je veux crée une liste chaîné de WinSock (grasse à deux
Class)
Ce que j'ai pour le moment :
2 Classes :
1ére Classe : Nommé "ClassMaillonWinSock" qui
contient (pour le moment car pas fini)
Private Suivant As ClassMaillonWinSock
Private Client As Winsock
Private Sub Class_Initialize()
Set Suivant = Nothing
Set Client = Nothing
End Sub
Public Function SuivantExist() As Boolean
If Suivant <> Nothing
Then
SuivantExist = True
Else
SuivantExist = False
End If
End Function
Public Function RefSuivant() As
ClassMaillonWinSock
RefSuivant = Suivant
End Function
Public Function CréeSuivant() As
ClassMaillonWinSock
Set Suivant = New
ClassMaillonWinSock
CréeSuivant = Suivant
End Function
Public Sub AcceptConnection(ByVal requestID As
Long)
Set Client = New Winsock
**************************************
Client.Accept requestID
End Sub
2éme Classe : Nommé "ClassMaillonWinSock" qui
contient (pour le moment car pas fini)
Private Maillon As ClassMaillonWinSock
Private NbMaillon As Long
Private Sub Class_Initialize()
Set Maillon = Nothing
End Sub
Public Sub
CréeClientAcceptConnexion(ByVal requestID As Long)
Dim EnCours As ClassMaillonWinSock
If NbMaillon = 0 Then
Set Maillon = New
ClassMaillonWinSock
Set EnCours = Maillon
Else
Set EnCours = Maillon
While EnCours.SuivantExist()
Set EnCours
= Maillon.RefSuivant
Wend
EnCours.CréeSuivant
End If
EnCours.AcceptConnection requestID
NbMaillon = NbMaillon
+ 1
End Sub
Bon voila mon code actuel, mon problème se pose dans ma classe 1 (nommé
"ClassMaillonWinSock") à la ligne "Set Client = New
Winsock" (la ligne marqué *)
Bon enfin ma question :
Un WinSock est un objet donc je devrais pouvoir faire un truc du genre. Pourquoi
le compilo me retourne l'erreur "Invalide use of New keyword" ????
J'ai une solution temporaire<!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600"
o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f"
stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" alt="" style='width:11.25pt;
height:11.25pt'>
<v:imagedata src="file:///C:/DOCUME~1/Vincent/LOCALS~1/Temp/msoclip1/01/clip_image001.gif"
o:href="http://www.vbfrance.com/imgs2/smile_angry.gif"/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--> mais cela ne me plais pas du tout (mais
alors vraiment pas) : Crée une form contenant un WinSock, et
crée un objet Form dans ma classe, basé bien évidemment sur ce form.
Si quelqu'un à une autre façon de faire je suis preneur à 2000%.
Remarque : Je veux une liste chaîné pour que l'ajout et la suppression
d'élément soit simple à gérer (alors qu'avec les 'index' je me retrouve
rapidement avec un tableau 'troué' commencent en 12 et terminant en 15547 « bien
sure j'exagéré au niveau des valeurs ». Ce qui forcément ne me plais pas).
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 19 mars 2007 à 11:07
Salut,
Tu ne peux pas faire un New sur des objets Winsock.
En revanche ce que tu peux faire c'est un Tableau de Winsocks
Si par exemple sur une feuille tu place un Winsock avec la propriété index à 0 (appelons le OWin) tu pourras à tout moment au lieu de faire un New faire un Load OWin(OWin.Count)
CE qui te permet ensuite de passer par un Property Set pour le passer à tes classes (tout ceci n'est qu'une iée et je ne suis pas sur que cela te conviennes)
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 19 mars 2007 à 11:17
Controle???
Quel est la différance entre un controle et un objet pour moi c'étais pareil???
Oui je l'ai déjà fais avec l'index mais cela ne me plais pas. Pour le momant je suis en train de faire une forms sur la quel je vais basé des objets dans ma liste chainé (du coup je pense ne pas faire ma classe "ClassMaillonWinSock", au faite ma façon de faire est la bonne c'est la 1ér liste chainé en VB que je fais).
Remarque : je suis en train de faire du débugage sur les classe fournis plus haut je ne les ais fournis que pour illustrer ma question.
Amicalement
Vous n’avez pas trouvé la réponse que vous recherchez ?
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 19 mars 2007 à 11:49
Merci mais je connais le principe d'une liste chainé (j'ai ais fais plein mais en C et C++ avec des structures et des pointeurs) je voulais juste confirmer que ma méthode étais le bonne en VB car le fais de ne pas avoir de pointeur ca me perturbe, mais je pense bien faire.
Si non pour le momant je fais une classe chaine avec des maillons de form. Ce qui ne me plais pas vraiment car je ne veux en aucain cas afficher ma chaine (bon c'est vrais que temps que ca marche mais bon...)
Ma question est plutôt : Y a t'il possibilité de construire une chaine de winsock sans faire une chaine de forms???
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 19 mars 2007 à 12:55
Merci
Ca à l’aire pas mal du tout mais un peut complexe à comprendre (oui j'aime bien
comprendre ce que j'utilise)
En tout cas j'ai ma réponse donc un grand MERCI.
Ce que je comprend aussi (puisque d'autre se sont fatiguer à re-faire un
WinSock) c'est qu'il n'est pas possible d'utilisé ce composant comme objet (en dehors
d'une form bien sure)