Advertisement
Guest User

ChatServer.vb

a guest
Dec 11th, 2011
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 2.28 KB | None | 0 0
  1. Public Class ChatServer
  2.  
  3.     Dim Tcp_Listern As System.Net.Sockets.TcpListener
  4.     Dim port As Integer = 137
  5.     Public ChatclientListe As New List(Of ChatClient)
  6.     Dim nehmeAn As Boolean = False
  7.     Public Event ClientDisconnected(ByVal c As ChatClient)
  8.     Public Event ClientNewMessage(ByVal c As ChatClient, ByVal sMessage As String)
  9.     Public Event NewclientConnected(ByVal c As ChatClient)
  10.    
  11.     Public Sub start(ByVal Port As Integer)
  12.  
  13.         nehmeAn = True
  14.         Dim t As New System.Threading.Thread(AddressOf VerbindungAnehmen)
  15.         t.IsBackground = True
  16.         t.Start()
  17.     End Sub
  18.     Private Sub VerbindungAnehmen()
  19.         Tcp_Listern = New System.Net.Sockets.TcpListener(port)
  20.         Tcp_Listern.Start()
  21.         While nehmeAn = True
  22.             Dim TcpC As System.Net.Sockets.TcpClient = Tcp_Listern.AcceptTcpClient()
  23.             Dim ChatC As New ChatClient
  24.  
  25.             ChatC.Start(TcpC)
  26.             ChatclientListe.Add(ChatC)
  27.             AddHandler ChatC.VerbindungUnterbrochen, AddressOf Disconnected
  28.             AddHandler ChatC.NeueNachricht, AddressOf NewMessage
  29.             RaiseEvent NewclientConnected(ChatC)
  30.         End While
  31.     End Sub
  32.     Private Sub Disconnected(ByVal c As ChatClient)
  33.         ChatclientListe.Remove(c)
  34.         RaiseEvent ClientDisconnected(c)
  35.     End Sub
  36.  
  37.     Private Sub NewMessage(ByVal c As ChatClient, ByVal sMessage As String)
  38.  
  39.         RaiseEvent ClientNewMessage(c, sMessage)
  40.         SchreibeAnJedenClient(sMessage)
  41.     End Sub
  42.  
  43.     Public Sub SchreibeAnJedenClient(ByVal sText As String)
  44.         Try
  45.             For Each c As ChatClient In ChatclientListe
  46.                 c.schreiben(sText)
  47.             Next
  48.         Catch ex As Exception
  49.             Console.WriteLine("Schreib an jeden Client")
  50.         End Try
  51.  
  52.     End Sub
  53.  
  54.     Public Sub Kickbyname(ByVal sClientName As String, ByVal sText As String)
  55.  
  56.         For Each c As ChatClient In ChatclientListe
  57.             If c.ChatName = sClientName Then
  58.                 c.schreiben(sClientName & " was kicked from the Server.")
  59.                 c.VerbindungTrennen()
  60.             End If
  61.  
  62.         Next
  63.  
  64.     End Sub
  65.     Public Sub Stopp()
  66.         On Error Resume Next
  67.         nehmeAn = False
  68.         Tcp_Listern.Stop()
  69.         Exit Sub
  70.     End Sub
  71. End Class
  72.  
  73.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement