Android网络基础 -- Socket

本文介绍了Android中Socket的基础知识,包括Socket的概念、建立过程、类型以及与HTTP的对比。Socket作为应用层与TCP/IP协议族通信的接口,简化了应用层与传输层的交互。在客户端与服务端的通信中,Socket的建立涉及TCP的三次握手。Socket分为流套接字(TCP)和数据报套接字(UDP)。与HTTP不同,Socket允许服务器主动发送数据,常见于需要实时更新的应用场景。
摘要由CSDN通过智能技术生成

1.什么是Socket

Socket即套接字,是应用层 与TCP/IP协议族通信的中间软件抽象层,表现为一个封装了TCP/IP协议族的编程接口。Socket不是一种协议,而是一个编程调用的接口,属于传输层接口,主要用来解决数据在网络种传输的问题。

通俗的理解,就是应用层无需关注这些协议的细节,只要按照Socket的接口进行编程,就可以直接使用TCP/IP协议族进行通信,主要有的协议有运输层的TCP、UDP,网络层的ICMP、IP、IGMP。

一个Socket实例唯一代表一个主机上的一个应用的通信链路。

 

2.Socket的建立过程

既然是通信,这里主要也是Android客户端到服务端的通信,所以分别来看客户端和服务端的具体实现。

1)客户端

-->创建一个Socket实例

-->操作系统将为该Socket分配一个未使用的本地端口号

-->操作系统创建一个含本地、远程地址、端口号的套接字数据结构(系统将一直保存该数据结构直到链接关闭)

-->在创建Socket实例的构造函数正确返回之前,进行TCP协议的三次握手

-->TCP握手协议完成后,Socket实例对象创建完成(否则会抛出IOException异常)

 

2)服务端

-->创建一个SeverSocket实例

-->操作系统将为该SeverSocket创建一个底层数据结构

-->调用accept方法时,将进入阻塞状态,等待客户端的请求

-->当一个新的请求到来之时,将为该链接创建一套新的套接字数据结构

-->等待三次握手完成后&#x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值