导航:首页 > 编程语言 > 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相关的资料

热点内容
数据库查询系统源码 浏览:619
php5314 浏览:359
完美国际安装到哪个文件夹 浏览:671
什么app可以扫一扫做题 浏览:542
程序员编码论坛 浏览:927
淘点是什么app 浏览:662
中国高等植物pdf 浏览:455
51单片机时间 浏览:185
后台如何获取服务器ip 浏览:269
单片机流水灯程序c语言 浏览:237
程序员第二职业挣钱 浏览:242
运行里怎么输入服务器路径 浏览:844
pythonstepwise 浏览:513
刘一男词汇速记指南pdf 浏览:67
php认证级别 浏览:372
方舟编译啥时候推送 浏览:1013
php手机验证码生成 浏览:678
哲学思维pdf 浏览:19
凌达压缩机有限公司招聘 浏览:537
weblogic命令部署 浏览:40