0

我有一个应用程序,我从服务器接收信息,然后在屏幕上为用户显示该信息。由于有很多信息,我想在收到信息时更新 UI。

发送/接收在单独的线程上完成。

两个问题:

  1. 我怎样才能最好地接收多个 UDP 数据包?我当前接收一个数据包的代码

    try {
    Log.i(TAG,"Listening...");
    _dcOut.setSoTimeout(20000); 
    _dcOut.receive(packet);/* Wait to receive a datagram */
    haveDatagram = true;
     Log.d(TAG,"dc_out, received...");
    }
     catch (Exception e) { // can be just a time out
    haveDatagram = false;
         Log.d(TAG,"dc_out, failed to receive...");
     }
    
  2. 接收多个 UDP 数据包时是否可以更新 UI?

编辑:我正在使用绑定服务从服务器获取信息(具体来说是 AIDL)。这是设置:

要么我:1.获取一个单独的对象并将其发回,这就是该服务的特定实例,要么2.我可以为该服务发回它们的列表

我的想法是我应该发回一份清单,比如 5-10 个对象,然后重复一段时间?

--我觉得我没有办法在使用此服务设置接收数据包时更新 UI--

4

1 回答 1

1

如果 UDP 数据包的接收是在单独的线程上完成的,那么在您的 GUI 上显示它应该没有问题!

您的代码仅显示接收 UDP 数据。我需要更多信息来具体说明:)

只有一个 UDPSocket 处理特定端口上的传入数据,它们将全部(数据包)按顺序存储在缓冲区中,专用于该特定进程。

于 2013-08-27T16:18:02.997 回答