我的问题是,将数据发送到同一网络中的其他设备的最佳方式是什么?
我有两台设备,都连接在同一个无线网络上,它们都有一个负责网络发现和所有这些东西的服务。
一旦设备“A”知道设备“B”在哪里,就会创建一个数据报套接字。然后,当您触摸设备 A 的屏幕时,它会使用数据报包向设备 B 发送一些数据。但这些数据必须是实时的。
现在我得到了大约 200 毫秒的延迟,在触摸屏幕和设备 B 收到数据包之间。
所以,我想知道是否有其他方法可以减少这个时间并使其更快。我选择 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();
}
}