VB.Net/Network Remote/TCP Server

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

TCP Server Demo

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


TCP Server socket

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