1. 程式人生 > >文獻隨筆(八)

文獻隨筆(八)

標題 linux 技術分享 理解 ket 應用 acc lin 用戶

一、基本信息
  標題:基於Qt的TCP Socket通信編程研究
  時間:2013
  出版源:電腦編程技巧與維護
  文件分類:文獻筆記

二、研究背景
  網絡中的進程是通過socket來通信的,那什麽是socket呢?socket起源於Unix,而Unix/Linux基本哲學之一就是“一切皆文件”,都可以用“打開open –> 讀寫write/read –> 關閉close”模式來操作。我的理解就是Socket就是該模式的一個實現,socket即是一種特殊的文件,一些socket函數就是對其進行的操作(讀/寫IO、打開、關閉)。socket使得服務器和客戶端之間可以相互通信,並完善用戶登錄服務器響應客戶端。

三、具體內容

1、Socket通信模型
  技術分享圖片

(1)、在服務端建立一個ServerSocket,綁定相應的端口,並且在指定的端口進行偵聽,等待客戶端的連接。

(2)、當客戶端創建連接Socket並且向服務端發送請求。

(3)、服務器收到請求,並且接受客戶端的請求信息。一旦接收到客戶端的連接請求後,會創建一個鏈接socket,用來與客戶端的socket進行通信。 通過相應的輸入/輸出流進行數據的交換,數據的發送接收以及數據的響應等等。

(4)、當客戶端和服務端通信完畢後,需要分別關閉socket,結束通信。

2、編程實現基於TCP/IP的用戶登錄小程序

服務端:

(1)、創建ServerSocket對象,綁定監聽端口

(2)、通過accept()方法監聽客戶端請求

(3)、連接建立後,通過輸入流讀取客戶端發送的請求信息

(4)、通過輸出流向客戶端發送響應信息

(5)、關閉相關資源

客戶端:

(1)、創建Socket對象,指明需要連接的服務器的地址和端口號

(2)、連接建立後,通過輸出流向服務器端發送請求信息

(3)、通過輸入流獲取服務器相應的信息

(4)、關閉相關資源。

四、總結
  建立一個TCP連接時,需要客戶端和服務端總共發送3個包以確認連接的建立, 在Socket編程中,這一過程由客戶端執行connect來觸發。應用程序可以通過socket向網絡發送請求或者應答網絡請求,Socket是支持TCP/IP協議的網絡通信的基本操作單元,是對網絡通信過程中端點的抽象的表示。

引用:白鋼華; 李王輝.基於Qt的TCP Socket通信編程研究.電腦編程技巧與維護.2013-12-18:52—65.

文獻隨筆(八)