一Socket简介
Android与服务器的通信方式主要有两种,一是HTTP通信,一是Socket通信。两者的最大差异在于,HTTP连接使用的是“请求—响应方式”,即在请求时建立连接通道,当客户端向服务器发送请求后,服务器端才能向客户端返回数据。而Socket通信则是在双方建立起连接后就可以直接进行数据的传输,在连接时可实现信息的主动推送,而不需要每次由客户端想服务器发送请求。
Socket称套接字, 是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。通过建立socket连接,可为通信双方的数据传输传提供通道。
一张万年老图
这些资料学linux的时候基本大家都有学过,不累赘说了。
二UDP通信模型
三android实现socket udp客户端编程
apk编程源码来源于http://blog.csdn.net/shankezh/article/details/50731287,自己做了一些修改。
现在互联网太发达了,自己也懒得从头来搞了,改改改!!
由于时间和水平都非常非常的有限!!!!
只能做一个简单的UDP客户端了,UDP服务器端本篇不做考虑。
(a)创建DatagramSocket对象,并指定一个端口
socket = new DatagramSocket(2425);
(b)创建一个InetAddress对象,用于描述IP地址的对象
hostAddress = InetAddress.getByName(hostIp);
(c)创建一个DatagramPacket对象,并指定这个数据报包发送到的IP地址以及端口号port
packetSend = new DatagramPacket(msgSend.getBytes() ,
msgSend.getBytes().length,hostAddress,udpPort);
(d)发送数据
socket.send(packetSend);
四 APP界面
五 测试结果
两部手机都连接上wiolink的wifi,其中一部iphone安装上网络调试助手
另一部安卓手机安装自己的app。Iphone作为udp服务器,安卓作为客户端,经过多次测试,丢包的情况时有发生,未找到原因。
本帖最后由 常见泽1 于 2017-10-11 16:34 编辑