更改活动时如何维护与服务器的TCP连接?

时间:2017-04-08 17:18:40

标签: java android service tcp tcpclient

我有点绝望。我正在开发一个可视化污染数据的应用程序。应用程序通过WiFi直接连接到传感器,传感器是组主机。然后我应该连接到端口5001并每2分钟检索一次数据。这些数据应该被发送到谷歌地图活动,在那里它将在信息窗口中可视化。

此时我只能创建一个立即关闭的TCP连接,我跟着这个Really simple TCP client

所以我需要建立一个不关闭的TCP连接,并在我从事其他活动时运行。我不需要发送任何消息,只需要检索数据。

我查看了这个How to keep the android client connected to the server even on activity changes and send data to server?但是我不明白我是如何为我的案例实现该代码的。

你是怎么做到的?感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您的Android应用程序是一个客户端,每次您需要获取数据时,您都可以从服务器上询问它。

如果服务器在阻止模式下工作,您可以通过打开的连接向服务器和服务器发送响应发送请求

以下是使用Socket进行客户端/服务器连接的一些示例:

https://examples.javacodegeeks.com/android/core/socket-core/android-socket-example/

https://github.com/codepath/android_guides/wiki/Sending-and-Receiving-Data-with-Sockets

您可以找到更多示例

  

此时我只能创建一个TCP连接   立即关闭

它依赖于您的服务器设计,客户端应用程序会将请求发送到服务器,如果服务器发回响应您可以获得它,但如果服务器没有响应发送您的连接将被关闭

  

所以我需要建立一个不关闭的TCP连接   我在其他活动中跑步。我不需要发送任何内容   消息,只检索数据

请参阅上面的链接,无需创建未关闭的连接,您应该发送请求并在每次需要时从服务器获取响应