Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Public Class ChatServer
- Dim Tcp_Listern As System.Net.Sockets.TcpListener
- 'Dim neu As New Neuheitenvb
- Dim port As Integer = 137
- Dim nehmeAn As Boolean = False
- Dim Users() As String
- Public TotalUsers As Integer = 0
- Public ChatclientListe As New SortedList(Of Integer, ChatClient)
- Public User_Dic As New SortedDictionary(Of Integer, String)
- Public Event ClientDisconnected(ByVal c As ChatClient)
- Public Event ClientNewMessage(ByVal c As ChatClient, ByVal sMessage As String)
- Public Event NewclientConnected(ByVal c As ChatClient)
- Public Sub start(ByVal Port As Integer)
- nehmeAn = True
- Dim t As New System.Threading.Thread(AddressOf VerbindungAnehmen)
- t.IsBackground = True
- t.Start()
- End Sub
- Private Sub VerbindungAnehmen()
- Tcp_Listern = New System.Net.Sockets.TcpListener(port)
- Tcp_Listern.Start()
- While nehmeAn = True
- Dim TcpC As System.Net.Sockets.TcpClient = Tcp_Listern.AcceptTcpClient
- Dim ChatC As New ChatClient
- ChatC.Start(TcpC)
- TotalUsers += 1
- ChatclientListe.Add(TotalUsers, ChatC)
- User_Dic.Add(TotalUsers, ChatC.ChatName)
- ChatC.schreiben("ok")
- AddHandler ChatC.VerbindungUnterbrochen, AddressOf Disconnected
- AddHandler ChatC.NeueNachricht, AddressOf NewMessage
- RaiseEvent NewclientConnected(ChatC)
- End While
- End Sub
- Private Sub Disconnected(ByVal c As ChatClient)
- ChatclientListe.Remove(TotalUsers)
- ' Muss vllt da noch was verandern
- RaiseEvent ClientDisconnected(c)
- End Sub
- Private Sub NewMessage(ByVal c As ChatClient, ByVal sMessage As String)
- RaiseEvent ClientNewMessage(c, sMessage)
- SchreibeAnJedenClient(sMessage)
- End Sub
- Public Sub SchreibeAnJedenClient(ByVal sText As String)
- Try
- Dim i As Integer = ChatclientListe.Count()
- Do Until i = 0
- Dim c As ChatClient = ChatclientListe(i)
- c.schreiben(sText)
- i -= 1
- Loop
- Catch ex As Exception
- Console.WriteLine("Schreib an jeden Client")
- End Try
- End Sub
- Public Sub Kickbykey(ByVal skey As Integer, ByVal sText As String)
- If User_Dic.ContainsKey(skey) = True Then
- Try
- Dim c As ChatClient = ChatclientListe.Item(skey)
- c.VerbindungTrennen("YOU WERE KICKED FROM THE SERVER", True)
- Catch ex As Exception
- End Try
- ' FeedBack
- End If
- End Sub
- Public Sub Get_All_Users(ByVal sTotal As Integer)
- Dim c As ChatClient = ChatclientListe.Item(TotalUsers)
- Dim AllUsernames As String
- Dim i As Integer = TotalUsers
- Do Until i = 0
- AllUsernames = User_Dic.Item(i)
- c.schreiben(AllUsernames)
- i -= 1
- Loop
- End Sub
- Public Sub Stopp()
- On Error Resume Next
- nehmeAn = False
- Tcp_Listern.Stop()
- End Sub
- End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement