如何将android客户端与python服务器同步?

时间:2016-03-30 14:49:14

标签: android python server client synchronize

我有一个python服务器和大约10个Android客户端,使用套接字。非常重要的是,当服务器发送消息时,所有客户端同时接收它(比如差异的十分之一秒)。

但是连接是通过Wifi连接的,有些设备比其他设备更晚得到消息,这会产生非常混乱的结果。我不想获得每台设备的延迟,因为这是一种非常不可靠的方法。我想要尽可能准确的东西。

例如,在FPS游戏中,通常在回合开始时进行倒计时,并且每个玩家可以同时开始游戏。这背后有什么逻辑?

至于我的代码目前是什么样的:

我在android中使用BufferedReader来读取服务器发送的每一行。服务器是一个控制台应用程序,您可以在其中键入消息,当您按Enter键时,每个列出的客户端都会为每个客户端接收一个新线程。

接收消息的java方法:

private void readMessage() throws IOException {
    String data;

    while ((data = mBufferedReader.readLine()) != null) {
        data = data.toUpperCase();
        if (data.startsWith("POSITION")) {
            String[] splitData = data.split("/");
            Log.d(Constants.TAG, splitData[1]);
            mMainActivity.setDevicePosition(Integer.parseInt(splitData[1]));
        } else {
            String message = data.substring(data.indexOf('/') + 1, data.length());
            int devices = Integer.parseInt(data.substring(0, data.indexOf('/')));
            if (message.length() >= devices) {
                message += " ";
            } else {
                int difference = devices - message.length();
                for (int i = 0; i < difference; i++) {
                    message += " ";
                }
            }
            mMainActivity.printMessage(message);
        }
    }
}

python line:

for cl in clients_list:
        start_new_thread(send_message_thread, (cl, message,))

0 个答案:

没有答案