文獻隨筆(八)
一、基本信息
標題:基於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.
文獻隨筆(八)