1. 程式人生 > >C#非同步TCP程式設計

C#非同步TCP程式設計

一、基本知識

1、利用TcpListener類和TcpClient類在同步方式下接收、傳送資料以及監聽客戶端連線時,在操作沒有完成之前一直處於阻塞狀態。

2、非同步設計模式:非同步操作一般工作在一個單獨的執行緒中執行,呼叫非同步方法非同步執行某個操作時,可以同時繼續執行該非同步方法的後面的程式碼。

非同步程式設計主要有兩種模式:基於事件的非同步設計模式、基於IAsyncResult的非同步模式。

(1)基於事件的非同步設計模式

用單獨的執行緒在後臺執行耗時的任務,當後臺任務完成時,就自動觸發對應的事件。

(2)基於IAsyncResult的非同步模式

3、在同步模式中,在伺服器上使用Accept方法接入連線請求,而在客戶端則使用Connect方法來連線伺服器。相對地,在非同步模式下,伺服器可以使用BeginAccept方法和EndAccept方法來完成連線到客戶端的任務,在客戶端則通過BeginConnect方法和EndConnect方法來實現與伺服器的連線。

111