lxa85
16-04-2011, 13:28
Здравствуйте!
Вводная:
Есть программа по расчету некоторой величины в логической игре.
Возникло предложение, разнести графический интерфейс пользователя от вычислителя в разные программы. Человек отдельно, Компьютер отдельно.
Для этого необходимо каким-либо образом наладить взаимодействие этих программ друг с другом.
Единственный имеющийся у меня опыт подобных взаимодействий - через сетевой сокет, и то, я не до конца понимаю, как это получается.
Т.е. в теории отправили, получили, но на практике в студенчестве синхронности(динамическая игра) мне достичь не удалось. Т.к. игра пошаговая низкие задержки сети мне не слишком страшны, но все же.
Сейчас "Решатель" выполнен отдельным потоком и работает постоянно анализируя ситуацию. Пока ситуация терпима, но как только заставляем его думать "вглубь" на несколько шагов, ситуация меняется до катастрофической.
Для взаимодействия программ AFAIK необходим некоторый API-Программный интерфейс программы, в который можно будет записывать поле игры, управляющий интерфейс для получения сиюминутного ответа, запуска, остановки и т.д. и интерфейс ответа. Соотв в GUI также должны быть предусмотрены интерфейс взаимодействия программ.
Вопрошательная :)
У консольный программ есть 3 стандартных потока. Поток ввода, поток вывода и поток ошибок. Если реализацию "Решателя" сделать консольной, т.к. графика там не нужна в принципе, то каким образом из другого графического приложения можно взаимодействовать с его стандартными потоками?
Есть Inter-process_communication (http://en.wikipedia.org/wiki/Inter-process_communication) (IPC), но найденный пример использует дополнительную библиотеку, что мне не совсем нравится.
Какую технологию взаимодействия программ можно применить, чтобы она была достаточно гибкой, для дальнейшей реализации клинет-сервера. Протокол взаимодействия сейчас создается, и к серверу хотелось бы создать API, чтобы "отвязаться" от платформы.
Интересует грамотная документация и внятное объяснение технологий взаимодействия. Может литература какая в свободном доступе есть? Т.к. мои рассуждения про API и IPC достаточно условны, вроде как знаю о чем говорю, а вроде как и нет.
Вводная:
Есть программа по расчету некоторой величины в логической игре.
Возникло предложение, разнести графический интерфейс пользователя от вычислителя в разные программы. Человек отдельно, Компьютер отдельно.
Для этого необходимо каким-либо образом наладить взаимодействие этих программ друг с другом.
Единственный имеющийся у меня опыт подобных взаимодействий - через сетевой сокет, и то, я не до конца понимаю, как это получается.
Т.е. в теории отправили, получили, но на практике в студенчестве синхронности(динамическая игра) мне достичь не удалось. Т.к. игра пошаговая низкие задержки сети мне не слишком страшны, но все же.
Сейчас "Решатель" выполнен отдельным потоком и работает постоянно анализируя ситуацию. Пока ситуация терпима, но как только заставляем его думать "вглубь" на несколько шагов, ситуация меняется до катастрофической.
Для взаимодействия программ AFAIK необходим некоторый API-Программный интерфейс программы, в который можно будет записывать поле игры, управляющий интерфейс для получения сиюминутного ответа, запуска, остановки и т.д. и интерфейс ответа. Соотв в GUI также должны быть предусмотрены интерфейс взаимодействия программ.
Вопрошательная :)
У консольный программ есть 3 стандартных потока. Поток ввода, поток вывода и поток ошибок. Если реализацию "Решателя" сделать консольной, т.к. графика там не нужна в принципе, то каким образом из другого графического приложения можно взаимодействовать с его стандартными потоками?
Есть Inter-process_communication (http://en.wikipedia.org/wiki/Inter-process_communication) (IPC), но найденный пример использует дополнительную библиотеку, что мне не совсем нравится.
Какую технологию взаимодействия программ можно применить, чтобы она была достаточно гибкой, для дальнейшей реализации клинет-сервера. Протокол взаимодействия сейчас создается, и к серверу хотелось бы создать API, чтобы "отвязаться" от платформы.
Интересует грамотная документация и внятное объяснение технологий взаимодействия. Может литература какая в свободном доступе есть? Т.к. мои рассуждения про API и IPC достаточно условны, вроде как знаю о чем говорю, а вроде как и нет.