我的问题是,哪种方法是将数据发送到同一网络中的其他设备?
我有两个设备,两个都连接在同一个无线网络上,它们都有一个服务,负责网络发现和所有这些东西。
一旦设备“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();
}
}