导航:首页 > 编程语言 > javasocketconnect

javasocketconnect

发布时间:2023-10-22 06:42:32

❶ 如何干净的实现Android/Java Socket 长连接通信

在远标实现过:socket模拟网页的报文连接某个网站,创建tcp的socket后,当我socket.connect后,如果在5到7秒钟不socket.send,那么这个链接就失效了。 请问如何长时间的保持这个链接
这是在服务器端的设置的,客户端没法设置,可以发送心跳包。
socket.connect后,每3-4秒用socket.send发送一字节数据(内容随便),然后观查这个连接是否保持。

lientSocket=serverSocket.accept();
OutputStream os = clientSocket.getOutputStream();
ObjectOutputStream oos=new ObjectOutputStream(os);
oos.writeObject(al);
oos.flush();
oos.close()//socket会关闭

实现:
长连接的维持,是要客户端程序,定时向服务端程序,发送一个维持连接包的。
如果,长时间未发送维持连接包,服务端程序将断开连接。

客户端:
通过持有Client对象,可以随时(使用sendObject方法)发送Object给服务端。
如果keepAliveDelay毫秒(程序中是2秒)内未发送任何数据,则,自动发送一个KeepAlive对象给服务端,
用于维持连接。
由于,我们向服务端,可以发送很多不同的对象,服务端也可以返回不同的对象。
所以,对于返回对象的处理,要编写具体的ObjectAction实现类进行处理。
通过Client.addActionMap方法进行添加。这样,程序会回调处理。

服务端:
由于客户端会定时(keepAliveDelay毫秒)发送维持连接的信息过来,所以,服务端要有一个检测机制。
即当服务端receiveTimeDelay毫秒(程序中是3秒)内未接收任何数据,则,自动断开与客户端的连接。
ActionMapping的原理与客户端相似(相同)。
通过添加相应的ObjectAction实现类,可以实现不同对象的响应、应答过程。

阅读全文

与javasocketconnect相关的资料

热点内容
服务器的应用镜像是什么 浏览:149
命令行的使用方法 浏览:509
怎么让图片左右压缩 浏览:651
白鹿原pdf 浏览:429
人民币怎么算法 浏览:754
什么app可以听懂刺猬说话 浏览:596
安卓机内存小如何扩大 浏览:125
粉丝服务器怎么和安卓手机通信 浏览:398
初中数学竞赛pdf 浏览:568
linux自定义安装 浏览:188
fpic要在每个编译文件 浏览:866
编译原理广义推导的定义 浏览:911
怎么在已有的压缩文件里加密码 浏览:517
安卓手机怎么设置系统软件 浏览:766
php前端java后端 浏览:794
数据框转换为矩阵python 浏览:74
单片机程序反汇编 浏览:853
编程和实物不一样 浏览:880
天官赐福小说什么app可看 浏览:208
原车空调改压缩机 浏览:103