[VB.NET] Socket Serveur MultiClient

Fermé
Utilisateur anonyme - Modifié par Alien41 le 7/10/2011 à 21:06
Bonjour, je reviens du langage python et ça fait longtemps que je n'est pas fait du VB.NET

J'essai de faire un server multi client en .NET puis je le test avec un client en python :

Je ne sais pas si c'est bien de faire ainsi mais voici le début de mon serveur, Le problème est que des que le client se connecte et envoi un message, le programme se ferme sans même de message d'erreur :

Imports System.Text  
Imports System.Net  
Imports System.Net.Sockets  


Public Class Form1  
    Public Sck As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)  
    Public Connexion As New List(Of Socket)  
    Public buff(1024) As Byte  

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load  
        Sck.Bind(New IPEndPoint(IPAddress.Parse("192.168.0.4"), 256))  
        Sck.Listen(1)  
        CreationSocket()  
    End Sub  

    Private Sub CreationSocket()  
        Connexion.Add(Sck)  
        Connexion(Connexion.Count - 1).BeginAccept(AddressOf AccepteConnexion, Sck)  
    End Sub  

    Private Sub AccepteConnexion(ByVal asyncResult As IAsyncResult)  
        Connexion(Connexion.Count - 1) = Connexion(Connexion.Count - 1).EndAccept(asyncResult)  
        CreationSocket()  
    End Sub  

    Private Sub MessageRecu(ByVal asyncResult As IAsyncResult)  
        For i As Integer = 0 To Connexion.Count  
            Dim recu As Integer = Connexion(i).EndReceive(asyncResult)  
            If recu <> "" Then  
                Chat.Text = Chat.Text & vbCrLf & Encoding.ASCII.GetString(buff)  
            End If  
        Next i  
    End Sub  

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick  
        Try 
            For i As Integer = 0 To Connexion.Count  
                Connexion(i).BeginReceive(buff, 0, buff.Length, SocketFlags.None, AddressOf MessageRecu, Connexion(i))  
            Next i  
        Catch  
        End Try  
    End Sub  
End Class


Une personne a une idée ?

Pareil si je veut informé en inscrivant dans le textbox "Chat" VB.net me parle de Thread (je sais se que c'est) et ne veut rien inscrire...