網頁文章 網頁文章

 

伺服器(一)

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 = 13000

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

 

            server = New TcpListener(localAddr, port)

            server.Start()

 

            Dim bytes(1024) As Byte

            Dim data As String = Nothing

 

            While True

                Console.Write("Waiting for a connection... ")

                Dim client As TcpClient = server.AcceptTcpClient()

                Console.WriteLine("Connected!")

 

                data = Nothing

 

                Dim stream As NetworkStream = client.GetStream()

 

                Dim i As Int32

 

                i = stream.Read(bytes, 0, bytes.Length)

                While (i <> 0)

 

                    data = System.Text.Encoding.ASCII.GetString(bytes, 0, i)

                    Console.WriteLine("Received: {0}", data)

 

                    data = data.ToUpper()

                    Dim msg As Byte() = System.Text.Encoding.ASCII.GetBytes(data)

 

                    stream.Write(msg, 0, msg.Length)

                    Console.WriteLine("Sent: {0}", data)

 

                    i = stream.Read(bytes, 0, bytes.Length)

 

                End While

 

                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

伺服器(二)

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.198")

 

            server = New TcpListener(localAddr, port)

 

            server.Start()

 

            Dim bytes(1024) As Byte

            Dim data As String = Nothing

 

            While True

                Console.Write("Waiting for a connection... ")

 

                Dim client As TcpClient = server.AcceptTcpClient()

                Console.WriteLine("Connected!")

 

                data = Nothing

 

                Dim stream As NetworkStream = client.GetStream()

 

                Dim i As Int32

 

                i = stream.Read(bytes, 0, bytes.Length)

                While (i <> 0)

                    data = System.Text.Encoding.ASCII.GetString(bytes, 0, i)

                    Console.WriteLine("Received: {0}", data)

 

                    data = data.ToUpper()

                    Dim msg As Byte() = System.Text.Encoding.ASCII.GetBytes(data)

 

                    stream.Write(msg, 0, msg.Length)

                    Console.WriteLine("Sent: {0}", data)

 

                    i = stream.Read(bytes, 0, bytes.Length)

 

                End While

 

                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

 

客戶端

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.198", "123")

    End Sub

    Sub Connect(ByVal server As [String], ByVal message As [String])

 

        Try

            Dim port As Int32 = 13000

            Dim client As New TcpClient(server, port)

            Dim data As [Byte]() = System.Text.Encoding.ASCII.GetBytes(message)

            Dim stream As NetworkStream = client.GetStream()

            stream.Write(data, 0, data.Length)

            Console.WriteLine("Sent: {0}", message)

            data = New [Byte](256) {}

 

            Dim responseData As [String] = [String].Empty

 

            Dim bytes As Int32 = stream.Read(data, 0, data.Length)

 

            responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes)

 

            Console.WriteLine("Received: {0}", responseData)

 

            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