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
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