茅台信息網 新聞系統 簡體中文版
Visual Basic.Net實現TCP協議
TCP協議是TCP/IP協議簇中的傳輸層中的一個協議,也是TCP/IP協議簇最為重要的協議之一。在TCP/IP協議簇中,有一個協議和TCP協議非常類似,這就是UDP協議,網絡上進行基於UDP協議的數據傳送時,發送方只需知道接收方的IP地址(或主機名)和端口號就可以發送UDP數據包。
而接收方只需知道發送方發送數據對應的端口號,就能夠接收UDP數據包了。傳送數據的雙方並不需要進行連接就能夠實現數據通訊,這樣就導致基於UDP協議的網絡應用程序,在傳送數據時無法保證可靠性、完整性和安全性。
而TCP協議卻與之相反,TCP協議是一種面向連接的,並提供可靠的、完整的、安全的數據傳送的網絡協議。它提供可靠字節服務的協議。在網絡中通過TCP協議傳送數據之前,發送方和接收方之間必須建立連接,這種連接就是所謂的"握手"。網絡中TCP應用,如同日常生活中的打電話,在通話之前,首先要撥號、震鈴(猶如發送方向接收方提出TCP連接申請,並等待TCP連接申請通過)。直到對方拿起電話時(發送方和接收方的TCP連接已經建立),就可以通話了(傳送數據)。本文的主要內容就來介紹在Visual Basic .Net實現基於TCP協議網絡數據傳送的一種簡單的方法。
一.簡介本文在實現TCP協議網絡應用時使用的類庫:
.Net FrameWork SDK中提供了很多用以實現TCP協議或與之相關協議的類庫,本文就選擇五個比較典型,也是比較簡單的類加以介紹,即:TcpListener類、TcpClient類、NetworkStream類、StreamReader類和StreamWriter類。TcpClIEnt主要用以提出TCP連接申請。TcpListener主要用以偵聽端口號,並接收遠程主機的TCP連接申請。NetworkStream類是實現TCP數據傳輸的基礎數據流,StreamReader類作用是通過操作NetworkStream,實現從網絡接收數據。StreamWriter類作用是通過操作NetworkStream,實現向網絡傳輸數據。
1. NetworkStream類:
NetworkStream類主要是提供用於網絡訪問的基礎數據流。它主要是網絡數據傳輸的載體,並提供同步、異步方式來訪問網絡數據流。雖然NetworkStream類有構造函數,但在實際情況中更多是通過TcpClient實例的GetStream方法來初始化NetworkStream實例。以下就是使用TcpClIEnt實例的GetStream方法來初始化NetworkStream實例具體代碼:
Dim tcpClient As TcpClIEnt
Dim nsStream As NetworkStream
tcpClient = New TcpClIEnt( "www.microsoft.com" , 8000)
''對遠程主機的8000端口提出TCP連接申請
nsStream = tcpClIEnt.GetStream ( )
''TCP連接建立後,獲得網絡數據傳輸的基礎數據流