none
VB.net 如何写远程控制软件 RRS feed

答案

  • 你好!
         参考这个实例,希望对你有帮助:
    Imports System
    Imports System.IO
    Imports System.Net
    Imports System.Net.Sockets
    Imports System.Text
    Imports Microsoft.VisualBasic
    
    
    Class MyTcpListener
    
        Public Shared Sub Main()
    
        Dim server As TcpListener
        server=nothing
            Try
                ' Set the TcpListener on port 13000.
             Dim port As Int32 = 13000
             Dim localAddr As IPAddress = IPAddress.Parse("127.0.0.1")
    
             server = New TcpListener(localAddr, port)
             
             ' Start listening for client requests.
             server.Start()
             
             ' Buffer for reading data
                Dim bytes(1024) As Byte
                Dim data As String = Nothing
             
             ' Enter the listening loop.
             While True
                Console.Write("Waiting for a connection... ")
                
                ' Perform a blocking call to accept requests.
                ' You could also user server.AcceptSocket() here.
                Dim client As TcpClient = server.AcceptTcpClient()
                Console.WriteLine("Connected!")
                
                data = Nothing
                
                ' Get a stream object for reading and writing
                Dim stream As NetworkStream = client.GetStream()
                
                Dim i As Int32
                
                ' Loop to receive all the data sent by the client.
                i = stream.Read(bytes, 0, bytes.Length)
                While (i <> 0) 
                   ' Translate data bytes to a ASCII string.
                   data = System.Text.Encoding.ASCII.GetString(bytes, 0, i)
                        Console.WriteLine("Received: {0}", data)
                   
                   ' Process the data sent by the client.
                   data = data.ToUpper()
                        Dim msg As Byte() = System.Text.Encoding.ASCII.GetBytes(data)
                   
                   ' Send back a response.
                   stream.Write(msg, 0, msg.Length)
                        Console.WriteLine("Sent: {0}", data)
                  
                   i = stream.Read(bytes, 0, bytes.Length)
    
                End While
                
                ' Shutdown and end connection
                client.Close()
             End While
          Catch e As SocketException
             Console.WriteLine("SocketException: {0}", e)
          Finally
             server.Stop()
          End Try
          
          Console.WriteLine(ControlChars.Cr + "Hit enter to continue....")
          Console.Read()
       End Sub 'Main
    
    End Class 'MyTcpListener 
    
    

    周雪峰
    • 已标记为答案 Kira Qian 2009年9月11日 8:24
    2009年9月5日 11:32
    版主
  • 上面是服务端,下面是客户端:
    Shared Sub Connect(server As [String], message As [String])
       Try
          ' Create a TcpClient.
          ' Note, for this client to work you need to have a TcpServer 
          ' connected to the same address as specified by the server, port
          ' combination.
          Dim port As Int32 = 13000
          Dim client As New TcpClient(server, port)
    
          ' Translate the passed message into ASCII and store it as a Byte array.
          Dim data As [Byte]() = System.Text.Encoding.ASCII.GetBytes(message)
    
          ' Get a client stream for reading and writing.
          '  Stream stream = client.GetStream();
          Dim stream As NetworkStream = client.GetStream()
    
          ' Send the message to the connected TcpServer. 
          stream.Write(data, 0, data.Length)
    
          Console.WriteLine("Sent: {0}", message)
    
          ' Receive the TcpServer.response.
          ' Buffer to store the response bytes.
          data = New [Byte](256) {}
    
          ' String to store the response ASCII representation.
          Dim responseData As [String] = [String].Empty
    
          ' Read the first batch of the TcpServer response bytes.
          Dim bytes As Int32 = stream.Read(data, 0, data.Length)
          responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes)
          Console.WriteLine("Received: {0}", responseData)
    
          ' Close everything.
          stream.Close()
          client.Close()
       Catch e As ArgumentNullException
          Console.WriteLine("ArgumentNullException: {0}", e)
       Catch e As SocketException
          Console.WriteLine("SocketException: {0}", e)
       End Try
    
       Console.WriteLine(ControlChars.Cr + " Press Enter to continue...")
       Console.Read()
    End Sub 'Connect
    

    周雪峰
    • 已标记为答案 Kira Qian 2009年9月11日 8:24
    2009年9月5日 11:41
    版主

全部回复

  • 你好!
         参考这个实例,希望对你有帮助:
    Imports System
    Imports System.IO
    Imports System.Net
    Imports System.Net.Sockets
    Imports System.Text
    Imports Microsoft.VisualBasic
    
    
    Class MyTcpListener
    
        Public Shared Sub Main()
    
        Dim server As TcpListener
        server=nothing
            Try
                ' Set the TcpListener on port 13000.
             Dim port As Int32 = 13000
             Dim localAddr As IPAddress = IPAddress.Parse("127.0.0.1")
    
             server = New TcpListener(localAddr, port)
             
             ' Start listening for client requests.
             server.Start()
             
             ' Buffer for reading data
                Dim bytes(1024) As Byte
                Dim data As String = Nothing
             
             ' Enter the listening loop.
             While True
                Console.Write("Waiting for a connection... ")
                
                ' Perform a blocking call to accept requests.
                ' You could also user server.AcceptSocket() here.
                Dim client As TcpClient = server.AcceptTcpClient()
                Console.WriteLine("Connected!")
                
                data = Nothing
                
                ' Get a stream object for reading and writing
                Dim stream As NetworkStream = client.GetStream()
                
                Dim i As Int32
                
                ' Loop to receive all the data sent by the client.
                i = stream.Read(bytes, 0, bytes.Length)
                While (i <> 0) 
                   ' Translate data bytes to a ASCII string.
                   data = System.Text.Encoding.ASCII.GetString(bytes, 0, i)
                        Console.WriteLine("Received: {0}", data)
                   
                   ' Process the data sent by the client.
                   data = data.ToUpper()
                        Dim msg As Byte() = System.Text.Encoding.ASCII.GetBytes(data)
                   
                   ' Send back a response.
                   stream.Write(msg, 0, msg.Length)
                        Console.WriteLine("Sent: {0}", data)
                  
                   i = stream.Read(bytes, 0, bytes.Length)
    
                End While
                
                ' Shutdown and end connection
                client.Close()
             End While
          Catch e As SocketException
             Console.WriteLine("SocketException: {0}", e)
          Finally
             server.Stop()
          End Try
          
          Console.WriteLine(ControlChars.Cr + "Hit enter to continue....")
          Console.Read()
       End Sub 'Main
    
    End Class 'MyTcpListener 
    
    

    周雪峰
    • 已标记为答案 Kira Qian 2009年9月11日 8:24
    2009年9月5日 11:32
    版主
  • 上面是服务端,下面是客户端:
    Shared Sub Connect(server As [String], message As [String])
       Try
          ' Create a TcpClient.
          ' Note, for this client to work you need to have a TcpServer 
          ' connected to the same address as specified by the server, port
          ' combination.
          Dim port As Int32 = 13000
          Dim client As New TcpClient(server, port)
    
          ' Translate the passed message into ASCII and store it as a Byte array.
          Dim data As [Byte]() = System.Text.Encoding.ASCII.GetBytes(message)
    
          ' Get a client stream for reading and writing.
          '  Stream stream = client.GetStream();
          Dim stream As NetworkStream = client.GetStream()
    
          ' Send the message to the connected TcpServer. 
          stream.Write(data, 0, data.Length)
    
          Console.WriteLine("Sent: {0}", message)
    
          ' Receive the TcpServer.response.
          ' Buffer to store the response bytes.
          data = New [Byte](256) {}
    
          ' String to store the response ASCII representation.
          Dim responseData As [String] = [String].Empty
    
          ' Read the first batch of the TcpServer response bytes.
          Dim bytes As Int32 = stream.Read(data, 0, data.Length)
          responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes)
          Console.WriteLine("Received: {0}", responseData)
    
          ' Close everything.
          stream.Close()
          client.Close()
       Catch e As ArgumentNullException
          Console.WriteLine("ArgumentNullException: {0}", e)
       Catch e As SocketException
          Console.WriteLine("SocketException: {0}", e)
       End Try
    
       Console.WriteLine(ControlChars.Cr + " Press Enter to continue...")
       Console.Read()
    End Sub 'Connect
    

    周雪峰
    • 已标记为答案 Kira Qian 2009年9月11日 8:24
    2009年9月5日 11:41
    版主