TCP-Server: nachricht an jeden Client weitersenden

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von VbCoda.

    TCP-Server: nachricht an jeden Client weitersenden

    Hey Leute,



    Ich bin grad dabei ein Chat zu schreiben, Client und Server getrennt. Jedoch habe ich dabei immer das Problem, dass der Client die Nachricht richtig übermittelt und dass der Server die Nachricht ebenfalls richtig verarbeitet, nun weiß ich aber nicht, wie der Server die ankommende Nachricht an jeden verbundenen Client weitersendet.

    Hier mal ein Codegeschnipsel ( das ist es der Server vom Remotecontrol, aber Aufabu bleibt ja gleich) :



    Imports System.IO
    Imports System.Net.Sockets
    Imports System.Threading




    Public Class Form1

    Dim client As TcpClient
    Dim listener As New TcpListener(4000)
    Dim befehl As String

    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing

    Timer1.Stop()
    listener.Stop()
    Application.Exit()



    End Sub


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Timer1.Start()

    Dim ListThread As New Thread(New ThreadStart(AddressOf listening)) ' Ein Thread für den Listener/Server wird erstellt, damit er sich nicht aufhängt
    ListThread.Start()




    End Sub



    Sub listening()

    Try
    listener.Start()


    Catch ex As Exception
    MsgBox(ex.Message)
    End Try


    End Sub


    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

    Try
    If listener.Pending = True Then
    befehl = ""



    client = listener.AcceptTcpClient()


    Dim Reader As New StreamReader(client.GetStream())
    While Reader.Peek > -1
    befehl = befehl + Convert.ToChar(Reader.Read()).ToString
    End While

    RichTextBox1.Text = befehl

    End If

    Catch ex As Exception
    MsgBox(ex.Message)
    End Try


    End Sub

    Private Sub RichTextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RichTextBox1.TextChanged


    If RichTextBox1.Text = "Laufende Programme beenden" Then
    Shell("shutdown -f")
    End If

    If RichTextBox1.Text = "Herunterfahren" Then
    Shell("shutdown -s -t 10")
    End If

    If RichTextBox1.Text = "Neu starten" Then
    Shell("shutdown -r -t 10")
    End If

    If RichTextBox1.Text = "Benutzer abmelden" Then
    Shell("shutdown -l")
    End If

    If RichTextBox1.Text.Contains("Textnachricht senden") Then
    RichTextBox1.Text = RichTextBox1.Text.Replace("Textnachricht senden ", Nothing)
    MsgBox(RichTextBox1.Text, MsgBoxStyle.Critical)
    End If


    Try


    If RichTextBox1.Text.Contains("Programm starten") Then
    RichTextBox1.Text = RichTextBox1.Text.Replace("Programm starten ", Nothing)
    Shell(RichTextBox1.Text)
    End If

    Catch ex As Exception

    End Try




    End Sub
    End Class




    Ich hoffe ihr könnt mir helfen,



    Viele Grüße VBCoda
    Deinen Code ein paar Zeilen gelesen und sofort nen Anfall bekommen. Heute schon zum 2. mal kommt ein TE mit einer Chat-Server-Frage und was springt sofort ins Auge...

    Timer1_Tick

    Kannst hier weiterlesen, da steht alles, was Du wissen willst und ein Timer gehört auf keinen Fall dazu....

    vb-paradise.de/allgemeines/sou…ehigem-server/#post487450
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Okay, danke erstmals für eure Antworten.

    Bin noch nicht allzu lang hier, deswegen habe ich es einfach mit c&p gemacht, wird aber wesentlich von Vorteil sein, danke.

    Danke für den Link, werde mich mal ransetzen.

    Schönen Sonntag noch,

    Gruß