Blocage de mon Serveur de tchat (AcceptTcpClient)

Blocage de mon Serveur de tchat (AcceptTcpClient) - VB/VBA/VBS - Programmation

Marsh Posté le 11-09-2013 à 18:17:04    

Salut !

 

Je m'inspire d'un serveur de tchat CONSOLE et j'aimerais le refaire en windows form.

 

Mais j'ai un probleme, arrivé a mon "AcceptTcpClient" (Ligne 33) mon appli ce bloque complétement, je ne peux plus rien faire...

 

Voici le code au complet :

 
Code :
  1. Imports System.Net.Sockets
  2. Imports System.IO
  3. Imports System.Net
  4. Public Class Form1
  5.     Dim Etat As Boolean
  6.     Private Serveur As TcpListener
  7.     Private Client As New TcpClient
  8.     Private IPendpoint As IPEndPoint = New IPEndPoint(IPAddress.Any, 10)
  9.     Private ListConnec As New List(Of Connection)
  10.     Private Structure Connection
  11.         Dim Stream As NetworkStream
  12.         Dim Writer As StreamWriter
  13.         Dim Reader As StreamReader
  14.         Dim Pseudo As String
  15.     End Structure
  16.     Private Sub BtnConnect_Click(sender As Object, e As EventArgs) Handles BtnConnect.Click
  17.         TxtEtat.Text = "En ligne"
  18.         Serveur = New TcpListener(IPendpoint)
  19.         Serveur.Start()
  20.         While True
  21.             Client = Serveur.AcceptTcpClient
  22.             Dim c As New Connection
  23.             c.Stream = Client.GetStream
  24.             c.Reader = New StreamReader(c.Stream)
  25.             c.Writer = New StreamWriter(c.Stream)
  26.             c.Pseudo = c.Reader.ReadLine
  27.             ListConnec.Add(c)
  28.             'ListCo.Items.Add(c.Pseudo)
  29.             Dim t As New Threading.Thread(AddressOf ListenToConnection)
  30.             t.Start(c)
  31.         End While
  32.     End Sub
  33.     Private Sub ListenToConnection(ByVal con As Connection)
  34.         Do
  35.             Try
  36.                 Dim tmp As String = con.Reader.ReadLine
  37.                 ListHistorique.Items.Add(con.Pseudo & " : " & tmp)
  38.                 For Each c As Connection In ListConnec
  39.                     Try
  40.                         c.Writer.WriteLine(con.Pseudo & " : " & tmp)
  41.                         c.Writer.Flush()
  42.                     Catch
  43.                     End Try
  44.                 Next
  45.             Catch
  46.                 ListConnec.Remove(con)
  47.                 ListCo.Items.Remove(con.Pseudo)
  48.                 Exit Do
  49.             End Try
  50.         Loop
  51.     End Sub
  52.     Private Sub BtnDeconnect_Click(sender As Object, e As EventArgs) Handles BtnDeconnect.Click
  53.         Etat = False
  54.     End Sub
  55. End Class
 


Si quelqu'un a une idée :) Je need :P


Message édité par naografix le 11-09-2013 à 18:17:53
Reply

Marsh Posté le 11-09-2013 à 18:17:04   

Reply

Marsh Posté le 12-09-2013 à 18:58:10    

up

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed