socket--套接字通信

文章來源:http://baike.baidu.com/view/538713.htm

要通過Internet進行通信,至少需要一對套接字,其中一個運行在客戶端,稱之爲ClientSocket,另一個運行於服務器端面,稱爲ServerSocket。根據連接啓動的方式以及本地要連接的目標,套接字之間的連接過程可以分爲三個步驟:服務器監聽、客戶端請求、連接確認。

  服務器監聽是指服務端套接字並不定位具體的客戶端套接字,而是處於等待連接的狀態,實時監控網絡狀態。

  客戶端請求是由客戶端的套接字提出連接請求,要連接的目標是服務器端套接字。爲此,客戶端的套接字必須首先描述它要連接的服務器的套接字,指出服務器套接字的地址和端口號,然後再向服務器端套接字提出連接請求。

  連接確認是當服務器端套接字監聽到或者說接收到客戶端套接字的連接請求時,它就響應客戶端套接字的請求,建立一個新的線程,把服務器端套接字的信息發送給客戶端,一旦客戶端確認了此連接,連接即可建立。而服務器端繼續處於監聽狀態,繼續接收其他客戶端的連接請求。

  使用套接字進行數據處理有兩種基本模式:同步和異步。

  同步模式:

  同步模式的特點是在通過Socket進行連接、接收、發送數據時,客戶機和服務器在接收到對方響應前會出於阻塞狀態,即一直等到收到對方請求進才繼續執行下面的語句。可見,同步模式只適用於數據處理不太多的場合。當程序執行的任務很多時,長時間的等待可能會讓用戶無法忍受。

  異步模式:

  異步模式的特點是在通過Socket進行連接、接收、發送操作時,客戶機或服務器不會處於阻塞方式,而是利用callback機制進行連接、接收、發送處理,這樣就可以在調用發送或接收的方法後直接返回,並繼續執行下面的程序。可見,異步套接字特別適用於進行大量數據處理的場合。

  使用同步套接字進行編程比較簡單,而異步套接字編程則比較複雜。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章