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

热点内容
qq怎么压缩视频文件 浏览:757
85年程序员跳槽央企 浏览:170
手机桌面文件夹无法添加 浏览:629
appstore中的钱怎么退 浏览:495
单片机程序下载后如何运行 浏览:475
刚买的阿里云服务器怎样搭建网站 浏览:637
公园设计pdf 浏览:684
缓解压力最好的办法美国 浏览:387
前后端系统数据加密解密 浏览:194
中国移动营业app怎么看套餐 浏览:205
javastatic数组 浏览:950
需要会员管理源码 浏览:415
手机app如何解除加密 浏览:167
用云服务器还得买个瘦主机 浏览:728
如何查看办公电脑服务器地址 浏览:368
海星云的服务器是什么系统 浏览:411
抖音小笼包解压神器 浏览:558
手机下载的源码在哪里储存 浏览:847
pdf看三维 浏览:406
九宫算法干什么用的 浏览:907