Socket編程

一、Socket

1.1 Socket簡介

Socket就是為網(wǎng)絡服務提供的一種機制。網(wǎng)絡通信其實就是Socket間的通信,通信的兩端都是Socket,數(shù)據(jù)在兩個Socket間通過IO傳輸。

在Web服務大行其道的今天,調用Web服務的代價是高昂的,尤其是僅僅是抓取少量數(shù)據(jù)的時候尤其如此。而使用Socket,可以只傳送數(shù)據(jù)本身而不用進行XML封裝,大大降低數(shù)據(jù)傳輸?shù)拈_銷。Socket允許使用長連接,允許應用程序運行在異步模式(提高效率),只有在需要的時候才接收數(shù)據(jù)

1.2 模仿QQ通信流程

1.3 socket通信流程圖

1.4 Socket連接

iOS中常用的兩種Socket類型:

流式Socket(SOCK_STREAM):流式是一種面向連接的Socket,針對于面向連接的TCP服務應用

數(shù)據(jù)報式Socket(SOCK_DGRAM):數(shù)據(jù)報式Socket是一種無連接的Socket,對應于無連接的UDP服務應用

在iOS中使用流式Socket連接的方法:

以NSStream(流)的方式來發(fā)送和接收數(shù)據(jù)

設置流的代理,對流狀態(tài)的變化做出相應

a. 連接建立

b. 接收到數(shù)據(jù)

c. 連接關閉

其中:

1. NSStream:數(shù)據(jù)流的父類,用于定義抽象特性,例如:打開、關閉代理,繼承自CFStream(Core Foundation)

2. NSInputStream:NSStream的子類,用于讀取輸入

3. NSOutputStream:NSSTream的子類,用于寫輸出

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 套接字是網(wǎng)絡通信的基石,是網(wǎng)絡通信的基本構建,最初是由加利福利亞大學Berkeley分校為UNIX開發(fā)的網(wǎng)絡通信編...
    Super超人閱讀 4,736評論 0 26
  • 什么是TCP/IP、UDP? TCP/IP(Transmission Control Protocol/Inter...
    liuboxx1閱讀 1,058評論 0 1
  • 1、網(wǎng)絡中進程之間如何通信? 本地的進程間通信(IPC)有很多種方式,但可以總結為下面4類:消息傳遞(管道、FIF...
    階梯閱讀 1,088評論 0 4
  • 1.Application設置請求隊列 2.創(chuàng)建字符請求對象 3.創(chuàng)建圖片請求對象,網(wǎng)絡請求圖片 普通下載圖片* ...
    RoboyCore閱讀 261評論 0 1
  • 每次做實驗前都會強調一定要認真預習實驗講義,做好預習報告。具體來講就是熟悉實驗的每個步驟,知道每一步操作的技術要點...
    prettycat閱讀 200評論 1 0

友情鏈接更多精彩內容