Skip to content

Latest commit

 

History

History
41 lines (23 loc) · 2.25 KB

4. Socket.md

File metadata and controls

41 lines (23 loc) · 2.25 KB
  1. Socket ==

Socket 成为 "套接字"。


1. Android 与 服务端的 通信

Android 与 服务端的 通信主要分为两种:

  • Http
  • Socket

1.1 Http 与 Socket 的 区别

Http: 连接使用的是 “请求 - 响应” 的 方式。在请求时简历连接通道,当客户端向服务端发送请求后,服务端才能向客户端返回数据。

Socket 是一种抽象层。通过 Socket 来发送和接受数据,可以将应用程序添加到网络中,与处在同一网络内的其他应用程序进行通信。总结,Socket 提供了 程序内部 与 外界通信 的端口,并为通信双方的提供了数据传输通道。
Socket 通信的话,会在程序内部提供与外部通信的端口,称为 端口通信。通过建立 Socket 连接,为通信双方的数据传输提供通道。
Socket 特点:数据丢失率低,简单,易于移植。

Socket: 在双方建立连接后,就可以直接进行数据的传输。连接时,可以实现 服务端 信息的 主动推送,而不需要每次由 客户端 向 服务端 发送请求。


Socket 分为 TCP 和 UDP

TCP 协议: 面向连接 的协议,提供 稳定双向 通信功能,TCP 连接的建立需要经过 “三次握手” 才能完成,为了提供稳定数据传输功能,其本身也有 超时重传机制。因此,具有很高的稳定性。 对应的 Java 类Socket

UDP 协议: 无连接 的协议,提供 不稳定 的 单向 通信功能,额外开销小,效率高。UDP 也能实现双向通信功能。性能 上,UDP 具有 更好的效率缺点不能保证数据一定能传输到,特别是在网络环境差的情况下对应的 Java 类DatagramSocket


总结

UDP 方式 下,Android 端服务端 的接收可以看出:Android 端服务端 的发送和接收大庭相径( 端口号 和 IP 对应了,通信就没问题 )。

TCP 使用的是 流方式 发送。
UDP 使用的是 (数据报)包方式 发送。