VB.Net/Network Remote/TCP Server

Материал из VB Эксперт
Перейти к: навигация, поиск

TCP Server Demo

<source lang="vbnet"> Imports System.Net Imports System.Net.Sockets Imports System.IO Imports System.Threading Public Class MainClass

  Shared Stream As NetworkStream
  Public Shared Sub Main()
       Dim Listener As New TcpListener(11000)
       Listener.Start()
       Console.WriteLine("TCP Server Waiting for a connection...")
       Try
           Dim Client As TcpClient = Listener.AcceptTcpClient()
           Console.WriteLine("Connection accepted.")
           Console.WriteLine(New String("-", 40))
           Console.WriteLine()
           Stream = Client.GetStream()
           Dim ReceiveThread As New Thread(AddressOf ReceiveData)
           ReceiveThread.IsBackground = True
           ReceiveThread.Start()
           Dim w As New BinaryWriter(Stream)
           Dim Text As String
           Do
               Text = Console.ReadLine()
               If Text <> "QUIT" Then w.Write(Text)
           Loop Until Text.ToUpper() = "QUIT"
           ReceiveThread.Abort()
           Client.Close()
           Listener.Stop()
       Catch Err As Exception
           Console.WriteLine(Err.ToString())
       End Try
   End Sub
   Shared Private Sub ReceiveData()
       Dim r As New BinaryReader(Stream)
       Do
           If Stream.DataAvailable Then
               Console.WriteLine("RECEIVED: " + r.ReadString())
           End If
       Loop
   End Sub

End Class


      </source>


TCP Server socket

<source lang="vbnet"> Imports System.Threading Imports System.Net.Sockets Imports System.IO Public Class MainClass

  Shared Dim connection As Socket 
  Shared Dim readThread As Thread 
   
  Shared Dim socketStream As NetworkStream
   
  Shared Private writer As BinaryWriter
  Shared Private reader As BinaryReader
  Public Shared Sub Main()
   
      readThread = New Thread(AddressOf RunServer)
      readThread.Start()
   
      Try
         writer.Write("SERVER>>> " ) " send data
         Console.WriteLine("SERVER>>> " )
   
   
         connection.Close()
   
      Catch exception As SocketException
         Console.WriteLine("Error writing object")
      End Try
  End Sub
  Shared Public Sub RunServer()
     Dim listener As TcpListener
     Dim counter As Integer = 1
     Try
        listener = New TcpListener(5000)
        listener.Start()
        While True
           Console.WriteLine("Waiting for connection" )
           connection = listener.AcceptSocket()
           socketStream = New NetworkStream(connection)
           writer = New BinaryWriter(socketStream)
           reader = New BinaryReader(socketStream)
           Console.WriteLine("Connection " & counter &" received.")
           writer.Write("SERVER>>> Connection successful")
           Dim theReply As String = ""
           Try
              Do
                 theReply = reader.ReadString()
                 Console.WriteLine(theReply)
              Loop While (theReply <> "CLIENT>>> TERMINATE" _
                 AndAlso connection.Connected)
           Catch inputOutputException As IOException
              Console.WriteLine("Client application closing")
           Finally
              Console.WriteLine("User terminated connection")
              writer.Close()
              reader.Close()
              socketStream.Close()
              connection.Close()
              counter += 1
           End Try
        End While
     Catch inputOutputException As IOException
        Console.WriteLine("Server application closing")
     End Try
  End Sub

End Class


      </source>