前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Socket解惑

Socket解惑

作者头像
清墨
发布2018-05-07 16:30:31
1.3K0
发布2018-05-07 16:30:31
举报
文章被收录于专栏:清墨_iOS分享清墨_iOS分享

不少开发人员对Socket的概念不是很熟悉,这篇文章可带你快速了解socket(高手略过)。

Socket又称"套接字”,网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。

建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。

我们做应用程序开发的,使用模式通常为客户端与服务端通信,发出请求获得应答,这也与我们常使用的http类似,但相比之下:HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。

对于Socket,实现网络通信还需要这些要素: *IP地址: (网络上主机设备的唯一标识) *端口号: (定位程序,有效端口:0-65535,其中0-1024由系统使用或者保留端口,开发中建议使用1024以上的端口) *传输协议: (常见TCP、UDP)

TCP和UDP
TCP(传输控制协议)

建立连接,形成传输数据的通道 在连接中进行大数据传输(数据大小不收限制) 通过三次握手完成连接,是可靠协议,安全送达 必须建立连接,效率会稍低

UDP(用户数据报协议)

将数据及源和目的封装成数据包中,不需要建立连接 每个数据报的大小限制在64K之内 因为无需连接,因此是不可靠协议 不需要建立连接,速度快

对于使用TCP/IP的Socket,不得不提到它的三次握手:
代码语言:javascript
复制
1.客户端向服务器发送一个SYN J
2.服务器向客户端响应一个SYN K,并对SYN J进行确认ACK J+1
3.客户端再想服务器发一个确认ACK K+1

完成了三次握手,客户端与服务端就可以传送数据了。

百度说的可能更好理解.png

整个Socket的通信流程如下:

流程图.png

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.02.01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • TCP和UDP
    • TCP(传输控制协议)
      • UDP(用户数据报协议)
        • 对于使用TCP/IP的Socket,不得不提到它的三次握手:
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档