关于Socket

首先,socket,套接字,这是一个东西,相关的术语一定要搞懂!曾就有一个面试案例:


讲讲Socket.

ooxx#$%^&*(

说的不错,再讲讲套接字.

...

坑爹呢?


术语是最容易给新人下套的东西,所以平常多了解一些相关术语会有很大的好处.


关于socket在面试中需要回答的东西:


什么是socket?

socket是系统提供的用于网络通信的方法,它描述了一个IP、端口对,知道对方的IP以及PORT就可以给对方发送消息,所以,Socket一定包含了通信的双发,即客户端(Client)与服务端(server)。


socket通信过程?

1)服务端利用Socket监听端口;(1024以下为系统端口,通常这个端口号都在1024之上)

2)客户端发起连接;

3)服务端返回信息,建立连接,开始通信;

4)客户端,服务端断开连接。


TCP/IP HTTP的区别?

首先应说明的是应用层面不同, 网络七层由下往上分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

TCP--传输,IP--网络,HTTP--应用层

TCP/IP解决的是数据如何在网络中传输,HTTP解决的是如何包装数据,两者本身就不是一个东西.

HTTP作为应用层协议,底层依然是使用的TCP/IP作为传输协议,除了HTTP之外,FTP等等也是一个意思.想想浏览器里面都能输入什么?http://,ftp://

至于Socket,本质上是一套对于TCP/IP进行封装的接口(API,又是术语),通过Socket可以直接使用TCP/IP协议进行数据传输.


HTTP和Socket连接的区别?

Socket既然是对于TCP协议的封装接口,说白了也就是TCP连接(Socket也可以处理UDP连接,这里不展开讨论),那么TCP连接首先要做的就是三次交互,俗称三次握手:

1.客户端像服务端发包,等待服务器确认;

2.服务器向客户端发包;

3.客户端收到服务器包,建立连接

来个简单的场景举例,AB两人对话:

A:借点钱.(发包)

B:随便借.(回复)

A:谢谢啊.(建立连接)

俩人继续聊.(开始通信)

可以看看出,这3句话里并没有涉及到具体金额,究竟借多少,怎么借,那些都是在继续聊里来完成的.是一个持续性的连接过程,所以TCP连接属于长连接.


而HTTP连接则不同,首先,HTTP是建立在TCP协议之上的一种应用.客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接.发出请求,收到响应即为一次连接.换言之HTTP连接属于短连接.

同样来一个场景举例,AB对话:

A:借1000万.(请求)

B:玩蛋去.(响应,断开连接)


iOS开发中使用Socket


如果使用官方库的话那就是CFNetwork,三方库可以选择AsyncSocket

具体实现方式参照其他博文或者官方文档自行学习吧,这里不再展开讨论了

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值