Advertisement
Guest User

ChatClient-Server.vb

a guest
Feb 4th, 2012
284
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 6.37 KB | None | 0 0
  1. Imports System.Data.Sql
  2. Imports System.IO
  3. Public Class ChatClient
  4.     Public Tcp_client As System.Net.Sockets.TcpClient
  5.     Dim Server As New ChatServer
  6.     Dim sql As New SqlAbfrage
  7.     Dim Auth As Integer
  8.     Dim STW As System.IO.StreamWriter
  9.     Dim STR As System.IO.StreamReader
  10.     Dim IsVerbunden As Boolean = False
  11.     Public ChatName As String
  12.     Public ClientiD As Integer
  13.     Public key As String = random_key(25)
  14.     Public Event NewMessage(ByVal c As ChatClient, ByVal sNachricht As String)
  15.     Public Event VerbindungUnterbrochen(ByVal c As ChatClient)
  16.     Public Event Kiick(ByVal sKey As String, ByVal c As ChatClient)
  17.  
  18.     Public Function Start(ByVal TcpClient As System.Net.Sockets.TcpClient) As Boolean
  19.         Try
  20.             IsVerbunden = True
  21.             Me.STR = New System.IO.StreamReader(Tcp_client.GetStream)
  22.             Me.STW = New System.IO.StreamWriter(Tcp_client.GetStream)
  23.             Dim read As String = STR.ReadLine
  24.             If read.StartsWith("reg,") Then
  25.                 read = read.Replace("reg,", "")
  26.                 register(read)
  27.             ElseIf read.StartsWith("log,") Then
  28.                 'Password and Username are beeing vertified
  29.                 read = read.Replace("log,", "")
  30.                 Dim user As String = read.Substring(0, read.IndexOf(","))
  31.                 ChatName = user
  32.                 read = read.Replace(user & ",", "")
  33.                 Dim pw As String = read
  34.                 Dim LogIn_result As String = login(user, pw)
  35.                 Return False
  36.             ElseIf read.StartsWith("reconnect,") Then
  37.                 'The function is to reconnect automatically.....
  38.                 'So I don't have to reload the login form
  39.                 read = read.Replace("reconnect,", "")
  40.                 Dim user As String = read.Substring(0, read.IndexOf(","))
  41.                 ChatName = user
  42.                 read = read.Replace(user & ",", "")
  43.                 Dim pw As String = read
  44.                 Dim LogIn_result As String = login(ChatName, pw)
  45.                 Dim tt As New System.Threading.Thread(AddressOf reader)
  46.                 tt.IsBackground = True
  47.                 tt.Start()
  48.                 Return LogIn_result
  49.             End If
  50.         Catch ex As Exception
  51.             MsgBox("-Error :" & ex.Message)
  52.         End Try
  53.     End Function
  54.  
  55.     Private Function login(ByVal suser As String, ByVal sPw As String) As Boolean
  56.         Me.STR = New System.IO.StreamReader(Tcp_client.GetStream)
  57.         Me.STW = New System.IO.StreamWriter(Tcp_client.GetStream)
  58.         Dim msg As String = sql.Login_Check(suser, sPw)
  59.         If msg.ToLower.StartsWith("false") Then
  60.             Return False
  61.         ElseIf msg.ToLower.StartsWith("true") Then
  62.             write(msg)
  63.             Auth = msg.Remove(0, msg.IndexOf(",") + 1)
  64.             Server.Auth.Add(ChatName, msg.Remove(0, msg.IndexOf(",") + 1))
  65.             Return True
  66.         End If
  67.     End Function
  68.     Public Function register(ByVal read As String) As String
  69.         read = read.Remove(0, 4)
  70.         Dim user As String = read.Substring(0, read.IndexOf(","))
  71.         read = read.Remove(0, ChatName.IndexOf(",") + 1)
  72.         Dim pw As String = read.Substring(0, read.IndexOf(","))
  73.         read = read.Remove(0, read.IndexOf(",") + 1)
  74.         Dim email As String = read.Substring(0, read.IndexOf(","))
  75.         read = read.Remove(0, read.IndexOf(",") + 1)
  76.         Dim hwid As String = read
  77.         MsgBox( "reg" &user & " " & pw & " " & email & " " & hwid)
  78.         Dim report As String = sql.reg_user(user, pw, email, 1, hwid)
  79.         If report.StartsWith("true") Then
  80.             ChatName = user
  81.             Console.WriteLine(ChatName & " registered")
  82.             write("true,Successfully registered")
  83.         Else
  84.             report = report.Remove(0, 6)
  85.             Console.WriteLine(ChatName & report)
  86.             write("false," & report)
  87.             Return "Registration rejected"
  88.         End If
  89.     End Function
  90.     Public Sub write(ByVal sText As String)
  91.         Try
  92.             STW.WriteLine(sText)
  93.             STW.Flush()
  94.         Catch ex As Exception
  95.  
  96.             Console.WriteLine("Schreiben " & ex.Message)
  97.             RaiseEvent VerbindungUnterbrochen(Me)
  98.         End Try
  99.     End Sub
  100.     Public Sub Terminate_connection(ByVal sText As String, ByVal kicked As Boolean)
  101.         If kicked = True Then
  102.             write(sText)
  103.         End If
  104.         IsVerbunden = False
  105.         STW.Close()
  106.         STR.Close()
  107.         Tcp_client.Close()
  108.     End Sub
  109.     Sub reader(ByVal c As ChatClient, Optional ByVal Terminate As Boolean = False)
  110.         Try
  111.             While IsVerbunden = True
  112.                 Dim sAntwort As String = STR.ReadLine
  113.                 If sAntwort.StartsWith("alle,") Then ' alle = all
  114.                     Dim new_AS As String = sAntwort.Remove(0, 5)
  115.                     RaiseEvent NewMessage(Me, new_AS)
  116.                 Else
  117.                     Dim index As Integer = sAntwort.IndexOf(">")
  118.                     Dim order As String = sAntwort.Substring(0, 6)
  119.                     Select Case order
  120.                         Case "<kick>"
  121.                             Dim new_AS As String = sAntwort.Remove(0, index + 1)
  122.                             RaiseEvent Kiick(new_AS, Me)
  123.                         Case "<bann>"
  124.                         Case "<wisper>"
  125.                         Case "<getinfo>"
  126.                         Case Else
  127.                             Console.WriteLine("no instruction match Error:," & "(" & ChatName & ")" & sAntwort)
  128.                     End Select
  129.                 End If
  130.             End While
  131.         Catch ex As Exception
  132.             Console.WriteLine("Read error: " & ex.Message)
  133.             RaiseEvent VerbindungUnterbrochen(Me)
  134.         End Try
  135.     End Sub
  136.     Function random_key(ByVal slength As Integer) As String
  137.         Dim key_part1 As New Random
  138.         Dim key_part2() As String = {"a", "b", "c", "d", "e", "f", "#", ";", "!", "$", "h", "lo", "xd", "Tl", "aL", "/sweet/", "Z", "t", "n", "o", "x", "Y", "~"}
  139.         Dim counter As Integer = slength
  140.         Dim key As String
  141.         Do Until counter = 0
  142.             If key_part1.Next(1, 3) = 1 Then
  143.                 key = key & key_part1.Next(0, 9)
  144.             ElseIf key_part1.Next(1, 3) = 2 Then
  145.                 key = key & key_part2(key_part1.Next(23))
  146.             End If
  147.             counter -= 1
  148.         Loop
  149.         Return key
  150.     End Function
  151. End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement