淺析C#中的通訊端編程(1)

來源:互聯網
上載者:User
淺析C#中的通訊端編程(1)
作者: 王凱明   www.ASPCool.com 時間:2002-4-10 21:16:32  閱讀次數:6045

     C#是微軟隨著VS.net新推出的一門語言。它作為一門新興的語言,有著C++的強健,又有著VB等的RAD特性。而且,微軟推出C#主要的目的是為了對抗Sun公司的Java。大家都知道Java語言的強大功能,尤其在網路編程方面。於是,C#在網路編程方面也自然不甘落後於人。本文就向大家介紹一下C#下實現通訊端(Sockets)編程的一些基本知識,以期能使大家對此有個大致瞭解。首先,我向大家介紹一下通訊端的概念。
  
  
  通訊端基本概念:
  
  
  通訊端是通訊的基石,是支援TCP/IP協議的網路通訊的基本操作單元。可以將通訊端看作不同主機間的進程進行雙向通訊的端點,它構成了單個主機內及整個網路間的編程介面。通訊端存在於通訊域中,通訊域是為了處理一般的線程通過通訊端通訊而引進的一種抽象概念。通訊端通常和同一個域中的通訊端交換資料(資料交換也可能穿越域的界限,但這時一定要執行某種解釋程式)。各種進程使用這個相同的域互相之間用Internet協議簇來進行通訊。
  
  
  通訊端可以根據通訊性質分類,這種性質對於使用者是可見的。應用程式一般僅在同一類的通訊端間進行通訊。不過只要底層的通訊協定允許,不同類型的通訊端間也照樣可以通訊。通訊端有兩種不同的類型:流通訊端和資料通訊端。
  
  
  
  
  通訊端工作原理:
  
  
  要通過互連網進行通訊,你至少需要一對通訊端,其中一個運行於客戶機端,我們稱之為ClientSocket,另一個運行於伺服器端,我們稱之為ServerSocket。
  
  
  根據串連啟動的方式以及本地通訊端要串連的目標,通訊端之間的串連過程可以分為三個步驟:伺服器監聽,用戶端請求,串連確認。
  
  
  所謂伺服器監聽,是伺服器端通訊端並不定位具體的用戶端通訊端,而是處於等待串連的狀態,即時監控網路狀態。
  
  
  所謂用戶端請求,是指由用戶端的通訊端提出串連請求,要串連的目標是伺服器端的通訊端。為此,用戶端的通訊端必須首先描述它要已連線的服務器的通訊端,指出伺服器端通訊端的地址和連接埠號碼,然後就向伺服器端通訊端提出串連請求。
  
  
  所謂串連確認,是指當伺服器端通訊端監聽到或者說接收到用戶端通訊端的串連請求,它就響應用戶端通訊端的請求,建立一個新的線程,把伺服器端通訊端的描述發給用戶端,一旦用戶端確認了此描述,串連就建立好了。而伺服器端通訊端繼續處於監聽狀態,繼續接收其他用戶端通訊端的串連請求。
  
  
  C#中的通訊端編程執行個體:
  
  
  通過向大家簡單的介紹通訊端的基本概念和實現通訊端編程的基本原理,我想大家對通訊端編程已有了初步的瞭解。不過,上面介紹的僅僅是基本概念和原理,要真正運用還是需要一定的工作的。對基本概念和原理的真正理解的最好方法莫過於自己動手做一個執行個體,下面我就向大家介紹一個很好的用C#實現通訊端編程的執行個體――聊天室程式。
  
  
  本程式是基於C/S(伺服器/用戶端)構架的,程式包含一個伺服器端的應用程式和一個用戶端的應用程式。首先,在伺服器上運行伺服器端的應用程式,該程式一運行就開始伺服器監聽。然後,在客戶機上就可以開啟用戶端的應用程式。程式開啟後可以與伺服器端應用程式進行串連,即進行用戶端請求。在串連確認後,用戶端使用者可以和其他的用戶端使用者進行聊天。用戶端人數沒有限制,同時還支援“悄悄話”聊天模式,支援聊天記錄。所以這是一個學習通訊端編程的相當不錯的例子。而且,程式中為了處理每個用戶端的資訊還用到了多線程機制。在每個用戶端與伺服器端串連成功後,它們之間就建立一個線程。這樣運用了多線程之後,用戶端之間就不會相互影響,即使其中一個出了錯誤也不會影響到另一個。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.