1

这是我的代码的链接。在服务上启动一个创建的套接字,它将数据从 android 客户端发送到服务器。此服务在销毁时停止。

但我注意到,如果我的客户端失去与服务器的连接,我无法知道它,更糟糕的是我无法重新连接到服务器。

我认为最好的方法是接收客户端发送到服务器的命令的回显,如果服务器没有回复,则了解连接丢失。在知道连接丢失后,我需要自行停止服务并重新启动它。我不知道该怎么做。完成此操作后,我需要重新绑定到活动。

另一种方式是客户端套接字应该为每一个发送的数据打开和关闭。这样它会自动重新连接到服务器。我也不知道该怎么做。

任何帮助表示赞赏

4

2 回答 2

2

我已经修改了我的代码以实现问题中建议的第二个解决方案。我现在没有在 startservice() 上创建套接字,而是在每次客户端想要发送数据时创建并关闭它。这样我就不必在连接丢失时停止我的服务。我修改为无限期监听端口的服务器端,除非客户端指示跳出循环并断开连接。

public void sendMessage(String message){
      //making message variable global to the SocketSevice class
      this.message=message;

      //connecting to class that performs socket connection
      Runnable connect = new connectSocket();
      new Thread(connect).start();

    }
于 2013-03-14T14:13:39.250 回答
0

当您想重新启动服务时,只需向您的一项活动发送一条广播消息。在接收到您的广播消息时,编写一段代码来启动您的广播接收器所定义的活动的服务。(杀死服务类内部或广播接收器类的服务)

于 2013-03-14T09:39:21.283 回答