Socket编程

一、Socket

1.1 Socket简介

Socket就是为网络服务提供的一种机制。网络通信其实就是Socket间的通信,通信的两端都是Socket,数据在两个Socket间通过IO传输。

在Web服务大行其道的今天,调用Web服务的代价是高昂的,尤其是仅仅是抓取少量数据的时候尤其如此。而使用Socket,可以只传送数据本身而不用进行XML封装,大大降低数据传输的开销。Socket允许使用长连接,允许应用程序运行在异步模式(提高效率),只有在需要的时候才接收数据

1.2 模仿QQ通信流程

1.3 socket通信流程图

1.4 Socket连接

iOS中常用的两种Socket类型:

流式Socket(SOCK_STREAM):流式是一种面向连接的Socket,针对于面向连接的TCP服务应用

数据报式Socket(SOCK_DGRAM):数据报式Socket是一种无连接的Socket,对应于无连接的UDP服务应用

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

以NSStream(流)的方式来发送和接收数据

设置流的代理,对流状态的变化做出相应

a. 连接建立

b. 接收到数据

c. 连接关闭

其中:

1. NSStream:数据流的父类,用于定义抽象特性,例如:打开、关闭代理,继承自CFStream(Core Foundation)

2. NSInputStream:NSStream的子类,用于读取输入

3. NSOutputStream:NSSTream的子类,用于写输出

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 套接字是网络通信的基石,是网络通信的基本构建,最初是由加利福利亚大学Berkeley分校为UNIX开发的网络通信编...
    Super超人阅读 4,205评论 0 26
  • 什么是TCP/IP、UDP? TCP/IP(Transmission Control Protocol/Inter...
    liuboxx1阅读 990评论 0 1
  • 1、网络中进程之间如何通信? 本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类:消息传递(管道、FIF...
    阶梯阅读 1,053评论 0 4
  • 1.Application设置请求队列 2.创建字符请求对象 3.创建图片请求对象,网络请求图片 普通下载图片* ...
    RoboyCore阅读 213评论 0 1
  • 每次做实验前都会强调一定要认真预习实验讲义,做好预习报告。具体来讲就是熟悉实验的每个步骤,知道每一步操作的技术要点...
    prettycat阅读 190评论 1 0