Android 中的Socket通信

本文介绍了Android中使用Socket进行通信的需求与基本概念,包括TCP/IP协议、端口、TCP/IP四层协议以及Socket的使用。通过实例展示了如何在Android客户端与服务端之间建立TCP连接,实现数据的可靠传输,并提供了部分示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       公司新项目中涉及到Socket通信有关的东西,虽然之前接触到一点,不过好长时间不用基本上忘个七七八八了,网上查了查资料,根据项目中的需求自己做了个小Demo,欢迎大家指正.

1.需求:

      1.1:客户端测量完毕后,将测量数据以Socket的方式上传的服务端;

      1.2:客户端每过1秒中向服务端发送一次心跳,服务端记录心跳时间并且每两秒钟判断一次心跳间隔,如果上一次心跳时间与现在时间间隔超过两秒钟视为连接异常,否则为连接正常.

2.基本概念

       2.1:TCP IP协议:在早期计算机网络中,各大厂商都有着自己的一套网络协议,互不兼容,这就导致说中文的只能跟说中文的交流而不能跟说英文的交流,这样的现象很不友好,为了让不同种类的所有计算机都能毫无障碍的交流,就必须要使用一套统一的标准,所以internet应运而生,在Internet的各种协议中,最重要的两个协议就是TCP和IP协议.

        2.2:在数以万计的计算机中,如果你想和某台计算机A通信,那么就必须知道A这台计算机在互联网中的ip地址(ip地址是每个计算机在网络中的唯一标识),而ip协议就是负责把你要发送的数据分割成n段打包然后从你的计算机发送到A计算机,但是在运输的过程中ip协议不会保证能把数据完整的送到A计算机,当然也不能保证数据会按照切割的先后顺序到达A计算机.

        2.3:TCP协议是建立在IP协议之上的协议,TCP协议会在两台计算机之间建立可靠的连接,并且会保证ip协议切割打包的ip包完整顺序的到达A计算机,即使在传输的过程中丢包了,TCP协议也会重新发送ip包,保证数据的完整性.TCP协议会把传输的数据流分成适当长度的报文段,一个单独的报文段除了包含要传输的数据流外还包含源计算机ip地址、端口和目标计算机ip地址、端口.

        2.4:端口:在给A计算机发消息的时候,只知道A的IP地址是不够的,还需要知道给A计算机的哪个程序发消息,例如我是给A计算机的微信发送的数据,那么我就需要知道微信这个网络程序向计算机申请的端口号,这样两个计算机中的两个网络程序才能互相建立连接.

    2.5:TCP/IP的四层协议: 

        2.5.1网络接口层(数据链路层)是物理传输通道,对于网络层下发的ip数据包通过网络选择合适的路径转发;对于从网络上接收到的物理帧,抽出ip数据包并交给网络层.

        2.5.2网络层对于网络接口层上传的ip数据包进行数据检验,检验此数据是否到达目的地址,是则去除包头将剩余数据上传到传输层,否则选择合适的路径继续转发;对于传输层下发的分组数据添加包头,封装成ip数据包交给网络接口层.

         ARP:address resolution protocol

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值