Что я мог бы сделать, перед любым действием между сервером и клиентом, или, может быть, каждые 5 действий (зависит от требуемой производительности), я бы сделал метод checkStatus, чтобы проверить, что сервер работает.в противном случае клиент выбрал бы один, чтобы сделать его сервером.Но я не знаю, зачем вам это делать, обычно клиент - это обычный компьютер, а сервер обладает высокой вычислительной мощностью.у вас также будет много проблем на уровне безопасности и памяти.
Если я действительно понимаю, что вам нужно (у меня была такая же задача в моем университете, я думаю, что могу помочь вам. вам нужноодноранговое приложение и серверное приложение в одном проекте. Клиент будет проверять сервер, если у него есть файлы (например) или что он может получить к ним доступ. если он может, то он загружает их. если клиент не можетдоступ к определенной папке или файлу на сервере, он может проверить другие клиенты, если они хранят эти файлы с сервера в своем хранилище, и они могут заполнить его или только один из них, если вы хотите сделать это проще.эта программа мне не подходила, поэтому я хранил информацию в текстовых файлах (у каждого клиента есть текстовый файл с именами файлов), а на сервере также была текстовая база данных.
, чтобы быть кратким, Что вам нужно :
- Клиентское приложение (может выполнять одноранговую работу или работать с сервером)
- Приложение сервераion
- База данных для сервера и мини-базы данных для клиентов.
- общение с использованием ftp или любого другого протокола, который вам нужен для вашего приложения.
Редактировать: Мой ответ был слишком расплывчатым, так как я не совсем понял, что вам нужно, япровел некоторые исследования, и я думаю, что вы можете достичь того, чего хотите, с atomix Реактивная среда Java для построения отказоустойчивых распределенных систем.Вы можете проверить на сайте .