Socket et Threads

peacandeliem17 Messages postés 9 Date d'inscription samedi 11 mars 2006 Statut Membre Dernière intervention 1 mars 2009 - 28 févr. 2009 à 13:07
peacandeliem17 Messages postés 9 Date d'inscription samedi 11 mars 2006 Statut Membre Dernière intervention 1 mars 2009 - 28 févr. 2009 à 17:37
Bonjour , je débute dans la programmation réseau et dans le multithread.
J'ai donc crée mon premier petit chat tout simple un serveur un client.
Maintenant je m'attaque un un serveur et multi-clients.
J'ai tout simplement un serveur qui ressemble à ça ( en très compacté ) :

SocketServer = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
        Dim ipadress As IPAddress()
        Dim he As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName)
        ipadress = he.AddressList
        Me.SocketServer.Bind(New IPEndPoint(ipadress(0), 15))
        Me.SocketServer.Listen(1)
        Me.SocketServer.BeginAccept(AddressOf ConnectionAcceptCallback, Me.SocketServer)

Et j'ai ma fonction de rappel ( toujours en très compacté ) :

 Private Sub ConnectionAcceptCallback(ByVal asyncResult As IAsyncResult)

        Dim socket As Socket = CType(asyncResult.AsyncState, Socket)

        Me.SocketClient = socket.EndAccept(asyncResult)

   End Sub

En fait je voudrais qu'à chaque fois qu'un client se connecte il m'affiche un nouveau Form que j'ai crée qui s'appelle Client, et tout les nouveau Client sont dans un tableau (clients(30)). Si je rajoute un truc du genre clients(i) = new Client et après Client.Show() à la fin de ma méthode de rappel il affiche un nouveau Client et il plante tout de suite.
J'ai juste essayé de crée un nouveau Form quelconque , si je fais juste Form.Show() à la fin de ma méthode de rappel il s'affiche et il plante, je ne comprend pas pourquoi. Ca viendrai pas du multi-threading ?
Mais j'ai pas encore les connaissances nécessaires dans le domaine pour comprendre ce qui se passe ....

Merci

1 réponse

peacandeliem17 Messages postés 9 Date d'inscription samedi 11 mars 2006 Statut Membre Dernière intervention 1 mars 2009
28 févr. 2009 à 17:37
Juste pour préciser ma demande :
En fait tout ce que je demande c'est si quelqu'un sait pourquoi mon prog plante dès que je demande l'affichage d'un Form (Form.show()) dans ma méthode de rappel ( aucune exception au débogage ) .
Merci
0
Rejoignez-nous