前言

  • Socket

    • Socket 是對 TCP/IP 協(xié)議的封裝,其中IP協(xié)議對應(yīng)為網(wǎng)絡(luò)層,TCP 協(xié)議對應(yīng)為傳輸層,而我們常用的HTTP協(xié)議,是位于應(yīng)用層,在七層模型中HTTP協(xié)議是基于 TCP/IP 的,我們想要使用 TCP/IP 協(xié)議,則要通過 Socket

  • Socket 編程用途(其他待補(bǔ)充)

    • 長連接

    • 端到端的即時通訊

  • Socket 和 Http(來源網(wǎng)絡(luò))

    • socket 一般用于比較即時的通信和實時性較高的情況,比如推送,聊天,保持心跳長連接等,http 一般用于實時性要求不那么高的情況,比如信息反饋,圖片上傳,獲取新聞信息等。

二、類似《你猜我畫》簡易效果說明

  • 效果(分別是模擬器和手機(jī)截圖)
    移動開發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)
    移動開發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)

  • 工作中碰到類似需求,但沒找到類似的成熟的第三方框架,只有先看看原理性的東西了。其實也就基于 socket 即時傳輸圖片數(shù)據(jù)、筆畫數(shù)據(jù),還有聊天文字,也可以拓展做其他的指令控制

  • 沒有做注冊登錄,沒有做用戶管理,只是簡單原理性的探討

  • 基于 GCDAsyncSocket 框架進(jìn)行,關(guān)于 GCDAsyncSocket 的介紹可自行了解

三、服務(wù)端部分代碼

  • 直接用 mac 程序作為服務(wù)端

    • Server 類

/*!
 @method  開啟服務(wù)
 @abstract 開啟服務(wù)器 TCP 連接服務(wù)
 */- (void)startServer {    self.serverSocket = [[GCDAsyncSocket alloc]initWithDelegate:self
                                                    delegateQueue:dispatch_get_main_queue()];                &