天天看點

Linux C Socket程式設計原理及簡單執行個體

部分轉自:http://goodcandle.cnblogs.com/archive/2005/12/10/294652.aspx

1.   什麼是TCP/IP、UDP?

2.   Socket在哪裡呢?

3.   Socket是什麼呢?

4.   有很多的架構,為什麼還在從Socket開始?

5.   Linux C Socket簡單示例

1.什麼是TCP/IP、UDP?

  TCP/IP(Transmission Control Protocol/Internet Protocol)即傳輸控制協定/網間協定,是一個工業标準的協定集,它是為廣域網(WANs)設計的。

  UDP(User Data Protocol,使用者資料報協定)是與TCP相對應的協定。它是屬于TCP/IP協定族中的一種。

  下面的圖表明了這些協定的關系。

Linux C Socket程式設計原理及簡單執行個體

2.Socket在哪裡呢?

Linux C Socket程式設計原理及簡單執行個體

3.Socket是什麼呢?

  Socket是應用層與TCP/IP協定族通信的中間軟體抽象層,它是一組接口。在設計模式中,Socket其實就是一個門面模式,它把複雜的TCP/IP協定族隐藏在Socket接口後面,對使用者來說,一組簡單的接口就是全部,讓Socket去組織資料,以符合指定的協定。

  門面模式,用自己的話說,就是系統對外界提供單一的接口,外部不需要了解内部的實作。

4.有很多的架構,為什麼還在從Socket開始?

  現在的跨平台網絡程式設計架構很多,如Java的SSH,C/C++的Boost等。

  現在的分布式架構很多,如Hadoop等。

  我的任務是把一個C/C++程式做成分布式,要求的不配環境,基本屬于純計算的,結果很小。是以選擇了Socket。

  重要的是Socket是分布式、雲計算、網絡程式設計的基礎,對Socket的學習有利于對其他架構的了解。

  下圖是Socket程式設計的基本流程:

Linux C Socket程式設計原理及簡單執行個體

5.Linux C Socket簡單執行個體與詳細注釋

 程式為簡單的“回射”,用戶端将控制台輸入的資訊發送給伺服器端,伺服器原樣傳回資訊。

 伺服器端:

Linux C Socket程式設計原理及簡單執行個體
Linux C Socket程式設計原理及簡單執行個體

View Code

用戶端:

Linux C Socket程式設計原理及簡單執行個體
Linux C Socket程式設計原理及簡單執行個體

執行:

用戶端

Linux C Socket程式設計原理及簡單執行個體

伺服器端

Linux C Socket程式設計原理及簡單執行個體