Hallo!
Ich habe letztens erfolgreich einen TCP Server programmiert, der genau mit einen TCP Client verbunden sein kann. Der Frage nach, wie ich diesen so aufrüsten kann,
dass er mehrere Clients annehmen kann, bin ich auf einen Thread "Multiserver (TCP)" (von kevin89) hier im Forum gestoßen. Sein Code stimmt soweit, aber eine
kleine Frage steht noch offen, die mir auch in dessem Thread nicht beantwortet wurde, deswegen dieser neue Thread.
[vbnet]Dim list as new list(Of Connection)
Private Structure Connection
Dim stream As NetworkStream
Dim streamw As StreamWriter
Dim streamr As StreamReader
Dim nick As String
End Structure
'Wenn sich ein Client verbinden will
client = server.AcceptTcpClient
Dim c As New Connection 'Client wird als Structure Connection erstellt
c.stream = client.GetStream
c.streamr = New StreamReader(c.stream)
c.streamw = New StreamWriter(c.stream)
c.nick = c.streamr.ReadLine ' Irgendwas wird empfangen
list.Add(c) ' Zur Liste hinzugefügt
Dim t As New Threading.Thread(AddressOf ListenToConnection) 'Neuer Thread, der die Connection abhört wird erstellt
t.Start(c)
Meine Frage: Wenn sich Clients verbinden, wird die Liste mit den Connections gefüllt. Mit c.streamw.writeline() kann man ja dann was senden. Aber wie kann ich
dann an einen bestimmten Client aus der Liste senden, wenn ich nicht in dem dazugehörigen Thread bin? Also zB. Sende an Connection, wo c.nick = irgendwas ist.
Hoffe ihr versteht was ich meine, für Ideen die ihr mit mir teilt wäre ich sehr dankbar.
MvG
Ich habe letztens erfolgreich einen TCP Server programmiert, der genau mit einen TCP Client verbunden sein kann. Der Frage nach, wie ich diesen so aufrüsten kann,
dass er mehrere Clients annehmen kann, bin ich auf einen Thread "Multiserver (TCP)" (von kevin89) hier im Forum gestoßen. Sein Code stimmt soweit, aber eine
kleine Frage steht noch offen, die mir auch in dessem Thread nicht beantwortet wurde, deswegen dieser neue Thread.
[vbnet]Dim list as new list(Of Connection)
Private Structure Connection
Dim stream As NetworkStream
Dim streamw As StreamWriter
Dim streamr As StreamReader
Dim nick As String
End Structure
'Wenn sich ein Client verbinden will
client = server.AcceptTcpClient
Dim c As New Connection 'Client wird als Structure Connection erstellt
c.stream = client.GetStream
c.streamr = New StreamReader(c.stream)
c.streamw = New StreamWriter(c.stream)
c.nick = c.streamr.ReadLine ' Irgendwas wird empfangen
list.Add(c) ' Zur Liste hinzugefügt
Dim t As New Threading.Thread(AddressOf ListenToConnection) 'Neuer Thread, der die Connection abhört wird erstellt
t.Start(c)
Meine Frage: Wenn sich Clients verbinden, wird die Liste mit den Connections gefüllt. Mit c.streamw.writeline() kann man ja dann was senden. Aber wie kann ich
dann an einen bestimmten Client aus der Liste senden, wenn ich nicht in dem dazugehörigen Thread bin? Also zB. Sende an Connection, wo c.nick = irgendwas ist.
Hoffe ihr versteht was ich meine, für Ideen die ihr mit mir teilt wäre ich sehr dankbar.
MvG
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Gelöschter Benutzer“ ()