mehrere Clients ein Server Verfasst am: 19.07.2011, 19:27
Ich will mich hier erstmal vorstellen, ich bin neu.. =) und komm aus Ulm (Baden Württemberg)
ich bin auf dem Gebiet Vb.net noch ein neuling
so mein Problem...
ich habe einen Server bei dem ich mit mehrer clients konekten will
und vom Server aus an jeden client gleichzeitig daten senden kann
Ich habe es hinbekommen das sich ein client konekten kann aber keine zwei oder drei=)...
'Variablen:
Private Structure Connection
Dim stream As NetworkStream
Dim streamw As StreamWriter
Dim streamr As StreamReader
End Structure
Dim Server As TcpListener
Dim client As New TcpClient
Dim ipendpoint As IPEndPoint = New IPEndPoint(IPAddress.Any, 4000)
Dim funktion As String()
Dim mainthread As Threading.Thread
Dim list As New List(Of Connection)
'______________
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Show()
Server = New TcpListener(ipendpoint)
Server.Start()
While True ' wir warten auf eine neue verbindung...
client = Server.AcceptTcpClient
Dim c As New Connection ' und erstellen für die neue verbindung eine neue connection...
c.stream = client.GetStream
c.streamr = New StreamReader(c.stream)
c.streamw = New StreamWriter(c.stream) ' Müsste eigentlich alles Klar sein.
list.Add(c)
mainthread = New Threading.Thread(AddressOf mainserver)
mainthread.Start(c)
End While
End Sub
Private Sub mainserver(ByVal con As Connection)
Do
Try
For Each c As Connection In list ' an alle clients weitersenden.
funktion = Split(con.streamr.ReadLine, "|")
Select Case funktion(0)
Case "play"
MsgBox("funzt")
AxWindowsMediaPlayer1.Ctlcontrols.stop()
AxWindowsMediaPlayer1.URL = funktion(1)
AxWindowsMediaPlayer1.Ctlcontrols.play()
c.streamw.WriteLine("Spielt|" & funktion(1)) ' Achtung! ist nicht Vollständig!
c.streamw.Flush()
Case "play-stop"
MsgBox("stop")
AxWindowsMediaPlayer1.Ctlcontrols.stop()
c.streamw.WriteLine("Spielt|" & funktion(1)) ' Achtung! ist nicht Vollständig!
c.streamw.Flush()
End Select
Next
Catch
list.Remove(con)
' Hier wieder eine Fehler behandlung und ein neuen Versuch den Server zu starten...
End Try
Loop
End Sub
Private Sub Form1__close(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.FormClosing
Server.Stop()
Try
mainthread.Abort()
Catch
End Try
End Sub
End Class
ich schick vom client nur den Ordnerlink C:\............\lala.mp3 zur mp3 datei und der server soll diese datei dann abspielen (files liegen auf dem server)