danucalovj

VB.NET Multithreaded Server

Jul 26th, 2012
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 2.56 KB | None | 0 0
  1. Imports System.Net.Sockets
  2. Imports System.Text
  3. Module Module1
  4.     Sub Main()
  5.         Dim serverSocket As New TcpListener(8888)
  6.         Dim clientSocket As TcpClient
  7.         Dim counter As Integer
  8.  
  9.         serverSocket.Start()
  10.         msg("Server Started")
  11.         counter = 0
  12.         While (True)
  13.             counter += 1
  14.             clientSocket = serverSocket.AcceptTcpClient()
  15.             msg("Client No:" + Convert.ToString(counter) + " started!")
  16.             Dim client As New handleClinet
  17.             client.startClient(clientSocket, Convert.ToString(counter))
  18.         End While
  19.  
  20.         clientSocket.Close()
  21.         serverSocket.Stop()
  22.         msg("exit")
  23.         Console.ReadLine()
  24.     End Sub
  25.  
  26.     Sub msg(ByVal mesg As String)
  27.         mesg.Trim()
  28.         Console.WriteLine(" >> " + mesg)
  29.     End Sub
  30.  
  31.     Public Class handleClinet
  32.         Dim clientSocket As TcpClient
  33.         Dim clNo As String
  34.         Public Sub startClient(ByVal inClientSocket As TcpClient, _
  35.         ByVal clineNo As String)
  36.             Me.clientSocket = inClientSocket
  37.             Me.clNo = clineNo
  38. Dim ctThread As Threading.Thread = New Threading.Thread(AddressOf doChat)
  39.             ctThread.Start()
  40.         End Sub
  41.         Private Sub doChat()
  42.             Dim requestCount As Integer
  43.             Dim bytesFrom(10024) As Byte
  44.             Dim dataFromClient As String
  45.             Dim sendBytes As [Byte]()
  46.             Dim serverResponse As String
  47.             Dim rCount As String
  48.             requestCount = 0
  49.  
  50.             While (True)
  51.                 Try
  52.                     requestCount = requestCount + 1
  53.                     Dim networkStream As NetworkStream = _
  54.                             clientSocket.GetStream()
  55.     networkStream.Read(bytesFrom, 0, CInt(clientSocket.ReceiveBufferSize))
  56.     dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom)
  57.                     dataFromClient = _
  58.                 dataFromClient.Substring(0, dataFromClient.IndexOf("$"))
  59.                     msg("From client-" + clNo + dataFromClient)
  60.                     rCount = Convert.ToString(requestCount)
  61.             serverResponse = "Server to clinet(" + clNo + ") " + rCount
  62.                     sendBytes = Encoding.ASCII.GetBytes(serverResponse)
  63.                     networkStream.Write(sendBytes, 0, sendBytes.Length)
  64.                     networkStream.Flush()
  65.                     msg(serverResponse)
  66.                 Catch ex As Exception
  67.                     MsgBox(ex.ToString)
  68.                 End Try
  69.  
  70.             End While
  71.  
  72.         End Sub
  73.     End Class
  74. End Module
Advertisement
Add Comment
Please, Sign In to add comment