基于JavaSocket的自定义协议,实现Android与服务器的长连接

基于JavaSocket的自定义协议,实现Android与服务器的长连接

ID:45783600

大小:49.72 KB

页数:46页

时间:2019-11-17

基于JavaSocket的自定义协议,实现Android与服务器的长连接_第1页
基于JavaSocket的自定义协议,实现Android与服务器的长连接_第2页
基于JavaSocket的自定义协议,实现Android与服务器的长连接_第3页
基于JavaSocket的自定义协议,实现Android与服务器的长连接_第4页
基于JavaSocket的自定义协议,实现Android与服务器的长连接_第5页
资源描述:

《基于JavaSocket的自定义协议,实现Android与服务器的长连接》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于JavaSocket的自定义协议'实现Android与服务器的长连接基于JavaSocket的自定义协议,实现Android与服务器的长连接(一)Socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也耍提供可供程序员做网络开发所用的接口,这就是Socket编程接口,通常也称作”套接字“。套接字之间的连接过程可以分为三个步骤:客户端请求,服务端回复收到,客户端收到服务端的回复,即三次握手。连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例完成所需的会话。作者:枚杉来

2、源:segmentfault

3、2016-12-0517:08收藏分享一、基础知识准备在止式给大家介绍自定义协议之前,我们先对网络传输和协议解析的相关知识点做一个基本的介绍,尽管这些知识点我们在学校里学过,但难免会有所遗忘,这里先做一个简单的介绍,以便对后文的内容理解更加顺畅。1.网络七层协议0SI的7层从上到下分别是:7应用层、6表示层、5会话层、4传输层、3网络层、2数据链路层、1物理层;其屮高层(即7、6、5、4层)定义了应用程序的功能,下面3层(即3、2、1层)主要面向通过网络的端到端的数据流。应

4、用层常见的协议有:HTTP、FTP、SMTP等;常见的传输层有:TCP、UDPo本文主要是基于TCP自定义协议实现客户端与服务端的长连接。1.SocketSocket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口,通常也称作”套接字“。套接字之间的连接过程可以分为三个步骤:客户端请求,服务端回复收到,客户端收到服务端的回复,即三次握手。连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例完成所需的会话。对于一个

5、网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产牛不同级别。3•位(bit)、字节(byte)“位(bit)”是电子计算机中最小的数据单位。每一位的状态只能是0或字节(Byte)”由8个二进制位构成(即lbyte=8bit),它是存储空间的基本计量单位,它能表示到数值范I韦I为0到255(即2的8次方减1);4.算术移位运算(符号位不变,低位补0)?左移运算:l<<2,1的二进制位是1,向左移两位是100,转为十进制数即为4,所以:L<<2的运算结果是4;

6、?右移运算:7>>2,7的二进制位是121,向右移两位是1,所以7>>2的运算结果是1o5.Java中各类型占字节数1.byte8位,1个字节2.boolean8位,1个字节3.char16位,2个字节4.short16位,2个字节5.int32位,4个字节6.float32位,4个字节7.double64位,8个字节8.long64位,8个字节4.Java中socket相关函数?Socket构造函数oSocket(lnetAddressaddress,intport)throw

7、sUnknownHostException,lOExceptionoSocket(lnetAddressaddress,intport,InetAddresslocalAddress,intlocalPort)throwslOExceptionoSocket(Stringhost,intport)throwsUnknownHostException,lOExceptionoSocketfStringhost,intport,InetAddresslocalAddress,intlocalPort)thr

8、owslOExceptiono述可以通过以下方式生成socket:SocketFactory.getDefault().createSocket(Stringaddress,Stringport)throwsConnectException?Socket方法ogetlnetAddress();//远程服务端的IP地址getPort();//远程服务端的端口getLocalAddress();//本地客户端的IP地址getLocalPort();//本地客户端的端口getlnputStream();//获

9、得输入流getOutStream();//获得输岀流?Socket状态oisClosed();〃连接是否已关闭,若关闭,返回true;否则返回falseisConnect();//如果曾经连接过,返回true;否则返回falseisBound();//如果Socket已经与本地一个端口绑定,返回true;否则返回falseo判断Socket的状态是否处于连接中1.booleanisConnected=socket.isConnected()

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。