在Android中将数据发送到远程设备的最佳方式

时间:2013-02-14 09:35:10

标签: android networking udp wireless datagram

我的问题是,哪种方法是将数据发送到同一网络中的其他设备?

我有两个设备,两个都连接在同一个无线网络上,它们都有一个服务,负责网络发现和所有这些东西。

一旦设备“A”知道设备“B”在哪里,就会创建一个数据报套接字。然后,当您触摸设备A的屏幕时,它会使用数据报包向某些设备B发送一些数据。但这些数据必须是实时的。

现在我在触摸屏幕和设备B收到数据包之间有大约200ms的延迟。

所以,我想知道是否有其他方法可以减少这个时间并使其更快。 我选择UDP因为速度更快而且不关心路上是否丢失。 但也许有更好的方法来做到这一点。

谢谢!

设备A发送到B代码

@Override
            public void run() {
                // TODO Auto-generated method stub
                super.run();
                try {
                    if (clientSocket==null || clientSocket.isClosed() || !clientSocket.isConnected()) {
                        clientSocket = new DatagramSocket();
                    }
                    EngelPacket p = new EngelPacket(0,1,0,1,0);
                    p.setTime(System.currentTimeMillis());
                    byte[] sendData = p.getPacketBytes();
                    DatagramPacket sendPacket = new DatagramPacket(sendData,
                            sendData.length, ipDest, port);
                    clientSocket.send(sendPacket);
                } catch (SocketException e) {
                    // TODO Auto-generated catch block

                    e.printStackTrace();
                } catch (UnknownHostException e) {
                    // TODO Auto-generated catch block

                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block

                    e.printStackTrace();
                }
            }

0 个答案:

没有答案