วิธีการโปรแกรมอินเทอร์เฟซของ Microsoft Windows Sockets และการเชื่อมต่อเครือข่าย ใน Visual Basic .NET หรือ Visual Basic 2005

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 821768 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

บทความที่มีการทีละขั้นตอนนี้อธิบายวิธีการโปรแกรมอินเทอร์เฟซ Sockets Windows ของ Microsoft (Winsock) และการเชื่อมต่อเครือข่าย ใน Microsoft Visual Basic .NET หรือ Microsoft Visual Basic 2005 ในตัวอย่าง แบบง่าย ๆ โอนควบคุมโพรโทคอล (TCP) ไคลเอนต์แอพพลิเคชันที่ชื่อTestTCPClientและแอพพลิเคชันเซิร์ฟเวอร์ TCP (ฟัง) อย่างง่ายที่ชื่อTestTCPServerใช้อินเทอร์เฟซของ Windows Sockets การสื่อสารกัน


สร้างแอพลิเคชันไคลเอนต์ TCP


  1. เริ่ม Microsoft Visual Studio .NET หรือ Microsoft Visual Basic 2005
  2. ในการแฟ้ม:เมนู คลิกใหม่แล้ว คลิกProject.
  3. ภายใต้ชนิดโครงการคลิกvisual โครงการพื้นฐาน.

    หมายเหตุ:ใน Visual Studio 2005 คลิกvisual Basicภายใต้ชนิดโครงการ.
  4. ภายใต้แม่แบบคลิกคอนโซลแอพลิเคชัน.
  5. ชื่อโครงการTestTCPClientแล้ว คลิกตกลง.

    โดยค่าเริ่มต้น Module1.vb ถูกสร้างขึ้น
  6. แทนรหัสใน Module1.vb ด้วยรหัสต่อไปนี้:
    Imports System.Net.Sockets
    Imports System.Text
    
    Class CTestTCPClient
        Shared Sub Main()
    
            Dim tcpClient As New System.Net.Sockets.TcpClient
    
            '"Localhost" string is used when the client and the listener are on the same computer.
            'If the listener is listening at a computer that is different from the client, provide the host name of the computer
            'where the listener is listening.
            tcpClient.Connect("Localhost", 8000)
            Dim networkStream As NetworkStream = tcpClient.GetStream()
            If networkStream.CanWrite And networkStream.CanRead Then
                ' Do a simple write.
                Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes("Is anybody listening...")
                networkStream.Write(sendBytes, 0, sendBytes.Length)
                ' Read the NetworkStream into a byte buffer.
                Dim bytes(tcpClient.ReceiveBufferSize) As Byte
                networkStream.Read(bytes, 0, CInt(tcpClient.ReceiveBufferSize))
                ' Output the data received from the host to the console.
                Dim returndata As String = Encoding.ASCII.GetString(bytes)
                Console.WriteLine(("TCP Server returned: " + returndata))
            Else
                If Not networkStream.CanRead Then
                    Console.WriteLine("Could not write data to data stream")
                    tcpClient.Close()
                Else
                    If Not networkStream.CanWrite Then
                        Console.WriteLine("Could not read data from data stream")
                        tcpClient.Close()
                    End If
                End If
            End If
            ' Pause to let the user view the console output.
            Console.ReadLine()
        End Sub
    End Class
     
    รหัสนี้สร้างอินสแตนท์ใหม่ของการtcpClientคลาส เรียกการเชื่อมต่อเมธอด และจากนั้นกำไรจากเข้าถึงกระแสข้อมูลข้อมูลพื้นฐาน โดยใช้การGetStream()วิธีการนี้NetworkStreamคลาสที่ ข้อความถูกแปลงเป็นอาร์เรย์เป็นไบต์ ส่งการสตรีมข้อมูล แล้ว อ่านสตรีมข้อมูลสำหรับการตอบสนองจากแอพพลิเคชันเซิร์ฟเวอร์ TCP (ฟัง)

สร้าง TCP เซิร์ฟเวอร์แอพลิเคชัน (ฟัง)

  1. เริ่ม Microsoft Visual Studio .NET หรือ Microsoft Visual Studio 2005
  2. ในการแฟ้ม:เมนู คลิกใหม่แล้ว คลิกProject.
  3. ภายใต้ชนิดโครงการคลิกvisual โครงการพื้นฐาน.

    หมายเหตุ:ใน Visual Studio 2005 คลิกvisual Basicภายใต้ชนิดโครงการ.
  4. ภายใต้แม่แบบคลิกคอนโซลแอพลิเคชัน.
  5. ชื่อโครงการTestTCPServerแล้ว คลิกตกลง.

    โดยค่าเริ่มต้น Moudle1.vb ถูกสร้างขึ้น
  6. แทนรหัสต่อไปนี้ มีรหัสใน Module1.vb:
    Imports System.Net.Sockets
    Imports System.net
    Imports System.Text
    Imports System.Net.DnsPermissionAttribute
    Imports System.Security.Permissions
    
    'DnsPermissionAttribute specifies permission to request information from Domain Name Servers.
    <DnsPermissionAttribute(SecurityAction.Demand, Unrestricted:=True)> Class CTestTCPServer
        Shared Sub Main()
            'Listening must be on the same port that the client is connected on. 
            Const portNumber As Integer = 8000
    
            '"Localhost" string is used when the client and the listener are on the same computer.
            'If the listener is listening at a computer that is different from the client, then provide the host name of the computer
            'where the listener is listening.
            Dim tcpListener As New TcpListener(CType(Dns.Resolve("Localhost").AddressList(0), IPAddress), portNumber)
            'Comment the previous line and uncomment the following line if you are using Visual Basic .NET (2003).
            'Dim tcpListener As New TcpListener(portNumber)
            tcpListener.Start()
            Console.WriteLine("TCP Server is up and waiting for Client connection...")
            Try
                ''Accept the pending client connection and return a TcpClient for communication. 
                Dim tcpClient As TcpClient = tcpListener.AcceptTcpClient()
                Console.WriteLine("Connection accepted.")
                ' Get the data stream.
                Dim networkStream As NetworkStream = tcpClient.GetStream()
                ' Read the data stream into a byte array.
                Dim bytes(tcpClient.ReceiveBufferSize) As Byte
                networkStream.Read(bytes, 0, CInt(tcpClient.ReceiveBufferSize))
                ' Return the data received from the client to the console.
                Dim clientdata As String = Encoding.ASCII.GetString(bytes)
                Console.WriteLine(("Client sent: " + clientdata))
                Dim responseString As String = "Successfully connected to TCP server."
                Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(responseString)
                networkStream.Write(sendBytes, 0, sendBytes.Length)
                Console.WriteLine(("Message Sent by TCP Server /> : " + responseString))
                'Close TcpListener and TcpClient.
                tcpClient.Close()
                tcpListener.Stop()
                Console.WriteLine("Exit")
                Console.ReadLine()
            Catch e As Exception
                Console.WriteLine(e.ToString())
                Console.ReadLine()
            End Try
        End Sub
    End Class
    
    โปรแกรมประยุกต์ TestTCPServer สร้างอินสแตนท์ใหม่ของการtcpListenerคลาพอร์ต เรียกการStart()วิธี และยอมรับการร้องขอของไคลเอ็นต์ที่ค้างอยู่ โดยการใช้แล้ว นี้AcceptTcpClient()วิธีการ กระบวนการAcceptTcpClient()ส่งกลับวิธีการtcpClientวัตถุที่คุณสามารถใช้ เพื่อส่ง และรับข้อมูล

ตัวอย่างในการทดสอบ

เมื่อต้องการทดสอบตัวอย่าง สร้าง และเรียกใช้โปรแกรมประยุกต์ TestTCPServer และจากนั้นสร้าง และเรียกใช้แอพลิเคชัน TestTCPClient ระบุข้อความในหน้าต่างคอนโซลที่ TestTCPClient โปรแกรมประยุกต์และโปรแกรมประยุกต์ TestTCPServer กำลังสื่อสาร โดยใช้อินเทอร์เฟซของ Windows Sockets

ข้อมูลอ้างอิง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการซ็อกเก็ตคลาส เยี่ยมชมเว็บไซต์ของ Microsoft สำหรับนักพัฒนาเครือข่าย (MSDN) ต่อไปนี้:
.aspx http://msdn2.microsoft.com/en-us/library/b6xa24z5 (vs.71)

คุณสมบัติ

หมายเลขบทความ (Article ID): 821768 - รีวิวครั้งสุดท้าย: 14 มกราคม 2554 - Revision: 3.0
ใช้กับ
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Keywords: 
kbvs2005applies kbvs2005swept kbwinsock kbdev kbconsole kbhowtomaster kbmt KB821768 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:821768

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com