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

热点内容
ipd编译要求 浏览:931
压缩解压王怎么用 浏览:29
服务器共享文件如何备份 浏览:752
买安卓手机怎么在官网买 浏览:120
诗词入门PDF 浏览:359
毒app是什么单位 浏览:62
如何自己编译android系统 浏览:790
phpmysqlpdomysqli 浏览:808
php修改sql语句 浏览:720
android有道api 浏览:387
挠耳营水表用的什么app 浏览:54
战锤40kpdf 浏览:381
java判断字符串是汉字 浏览:468
2017初级教材pdf 浏览:457
松下空调压缩机品牌 浏览:823
python复选框 浏览:752
反诈中心app是什么时候出来的 浏览:592
魔兽世界需要什么服务器地址 浏览:195
啥是单片机休眠 浏览:110
什么音乐app最好 浏览:933