在.NET技術大系當中,有很多服務程式設計的技術,比如socket、windows service、.net remoting、message queue、web service、wcf等等,這些技術都往往與網絡知識緊密相關,有時還會結合多線程等技術,實作特定的需求。這裡隻以Socket為例,看如何運用C#進行網絡程式設計。
熟悉Socket程式設計的應該都不陌生,要實作Socket,需要一個服務端程式以及一個用戶端程式,服務端程式綁定IP、Port,建立偵聽;用戶端程式建立連接配接,向服務端抛出請求,通過TCP或UDP協定,獲得服務端的回報,這是一個雙工通信的過程。而且最重要的是,Socket通信與具體程式設計語言無關,C、C++、JAVA、C#、PHP、Flex等進階程式設計語言都提供了相應的實作。
下面這個是個用戶端Socket的簡單例子,也是實際工作中曾經用過的。當時的情況是Socket服務端是用Java開發的一個程式,通過使用Socket,讓兩台不同網絡的的機器通過前置機擷取對方的資訊。通過用戶端發起請求,服務端監聽收到請求後,進行響應處理,并把封裝好的XML文檔傳回用戶端。用戶端收到XML資料後進行解析處理即可。
再附一個完整一點的小例子。
這個程式簡單實作了用戶端發送消息,服務端接收消息并回報給用戶端消息的過程。用了同步模式,是最簡單的socket通信模型。
服務端控制台:
用戶端WPF:
效果圖:
服務啟動時:

用戶端界面:
點選發送後,服務端顯示的消息:
由于代碼比較簡單,就不上傳項目檔案了,這裡簡單示範了一下C#Socket通信的核心代碼。讀者可以在此基礎上不斷擴充。