網頁文章 網頁文章

 

客戶端

Imports System

 

 

 

Imports System.IO

 

Imports System.Net

 

Imports System.Net.Sockets

 

Imports System.Text

 

Imports Microsoft.VisualBasic

 

Module Module1

 

 

 

    Sub Main()

 

 

 

        Connect("192.168.0.128", " How are you server-1")

 

 

 

    End Sub

 

 

 

 

 

    Sub Connect(ByVal server As [String], ByVal 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

 

 

 

 

 

End Module

伺服端

Imports System

 

 

 

Imports System.IO

 

Imports System.Net

 

Imports System.Net.Sockets

 

Imports System.Text

 

Imports Microsoft.VisualBasic

 

 

 

Module Module1

 

 

 

    Sub Main()

 

 

 

 

 

        Dim server As TcpListener

 

        server = Nothing

 

        Try

 

 

 

            Dim port As Int32 = 15000

 

            Dim localAddr As IPAddress = IPAddress.Parse("192.168.0.128")

 

 

 

            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("10079702-2 Server 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

 

End Module