部分轉自: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協定族中的一種。
下面的圖表明了這些協定的關系。

2.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程式設計的基本流程:
5.Linux C Socket簡單執行個體與詳細注釋
程式為簡單的“回射”,用戶端将控制台輸入的資訊發送給伺服器端,伺服器原樣傳回資訊。
伺服器端:
View Code
用戶端:
執行:
用戶端
伺服器端