如何通过android套接字在多个设备之间高效地同步数据
我正在为餐馆开发一个移动应用程序,这样服务员就可以用手机点菜了。目前,我需要这个应用程序安装在四部手机上,我需要在一部手机上下订单,以便通过局域网在所有其他手机上同步。通讯应完全通过局域网进行,因为电话或餐厅中没有互联网 在这种情况下,3个手机将具有相同的应用程序来接受订单,而一个作为主设备的手机将具有单独的应用程序,该应用程序具有接受订单和支付的能力 我已经研究过Android P2P,但这对我来说没有用,因为有些设备低于Android 4.0,所以我遇到的唯一解决方案是套接字通信 那么,在这种情况下,我使用套接字通信的最佳方法是什么呢。我还应该提到,我正在通过套接字发送一个大的JSON文件,该套接字具有以下顺序 下单后,我应该将订单从该移动设备发送到循环中的所有其他移动设备,还是首先将订单发送到主设备,然后该设备将订单发送到循环中的所有其他设备。以上两种方法我都试过,但都不太好。有时订单与某些设备不同步 下面是我的代码,它将JSON发送到循环中的所有设备。我的代码正确吗如何通过android套接字在多个设备之间高效地同步数据,android,json,sockets,mobile,synchronization,Android,Json,Sockets,Mobile,Synchronization,我正在为餐馆开发一个移动应用程序,这样服务员就可以用手机点菜了。目前,我需要这个应用程序安装在四部手机上,我需要在一部手机上下订单,以便通过局域网在所有其他手机上同步。通讯应完全通过局域网进行,因为电话或餐厅中没有互联网 在这种情况下,3个手机将具有相同的应用程序来接受订单,而一个作为主设备的手机将具有单独的应用程序,该应用程序具有接受订单和支付的能力 我已经研究过Android P2P,但这对我来说没有用,因为有些设备低于Android 4.0,所以我遇到的唯一解决方案是套接字通信 那么,在这
Iterator i = hardwareList.iterator();
while (i.hasNext()) {
beHardware hardware = (beHardware) i.next();
prepAndSendSocketMessage(hardware.getIp(), jsonStringToSend);
}
这是prepAndSendSocketMessage()方法
我对您最终使用的场景非常感兴趣,因为我目前发现自己使用的是类似的场景。你能告诉我android P2P解决方案的正确方向吗,因为我可能没有>4.0的限制。提前感谢。正如我在上面的问题中提到的那样,我使用了它,使用ine设备作为服务器,将所有内容分发给所有人。您如何解决订单有时不同步的问题?我对您最终使用的场景非常感兴趣,因为我目前发现自己使用的是类似的场景。你能告诉我android P2P解决方案的正确方向吗,因为我可能没有>4.0的限制。提前感谢我在上面的问题中提到过,我使用的是ine设备作为服务器,将所有内容分发给每个人。您如何解决订单有时不同步的问题?
private boolean prepAndSendSocketMessage(String host,String jsonStringToSend)
{
int port = 51253;
Socket socket = new Socket();
try {
socket.bind(null);
socket.connect((new InetSocketAddress(host, port)), 5000);
OutputStream outputStream = socket.getOutputStream();
outputStream.write(jsonStringToSend.getBytes());
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
return false;
} finally {
if (socket != null) {
if (socket.isConnected()) {
try {
socket.close();
} catch (IOException e) {
}
}
}
}
return true;
}