Делаю программу, своего рода база данных (всяких мануалов, виды шмоток и т. д) для одной онлайн игры. Суть в том, что по большей мере все файлы программы, картинки, текста и т. д хранятся в нужных папках. Обновления у игры выходят не так часто, скажем 1 раз за квартал.
Хочется сделать функционал, когда пользователь заходит, он мог нажать условную кнопку "обновить" и у все новые файлы добавились в нужные папки и т. д
Может кто то сталкивался с подобной задачей? Спасибо
И вот еще вопрос. Знаю что для этого нужно будет брать какой нибудь хостинг и т. д, а возможно ли использовать свой компьютер как сервер для обновления? или это вообще бред и такого не существует?
C#
Запрос на обновление C#
Если это игра, то твой сервер на компьютере могут просто положить. DDoS атаки, да и просто если вдруг будет большой онлайн и 50% будет скачивать обновление. Скорости не хватит на всех.
А так, FTP сервер открываешь (есть готовые программы), прописываешь в лаунчере или отправляешь по запросу со стороны сервера ссылки. Все :)
Проверку на обновления можно сделать очень просто:
1) На клиенте, на лаунчере - перед тем как впускать игрока в бой, сделай запрос на сервер, с проверкой версией. Если версия отличается, то сделай проверку файлов и потом уже обновляй.
2) Можно сделать проверку контрольной суммы файлов, при каждом запуске игры. Будет отправляться запрос на сервер и сверяться этими данными на клиенте. Также это спасет от некоторых читеров.
Для аренды сервера, самое надежное решение это https://stormwall.pro/
ps для себя я делал вот так:
string pText = new WebClient().DownloadString("127.0.0.1/update/update.txt"); // версия программы, этот запрос выполняем при каждом запуске
f (pText.Split('|')[0] == Version.get_version)
{
MessageBox.Show("Обновление не требуется", "ИНФОРМАЦИЯ", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
DialogResult ok = MessageBox.Show("Обнаружена новая версия программы: " + pText.Replace("|", "\n") + "\nНажмите Да чтобы обновить версию.", "ИНФОРМАЦИЯ", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
if (DialogResult.Yes == ok)
{
WebClient webClient = new WebClient();
webClient.DownloadFile("127.0.0.1/update/srv.txt", "update.txt");
File.Move(@"this_programm.exe", @"this_programm.exeOLD");
File.Move(@"update.txt", @"this_programm.exe");
Thread.Sleep(500);
Application.Restart();
}
}
А так, FTP сервер открываешь (есть готовые программы), прописываешь в лаунчере или отправляешь по запросу со стороны сервера ссылки. Все :)
Проверку на обновления можно сделать очень просто:
1) На клиенте, на лаунчере - перед тем как впускать игрока в бой, сделай запрос на сервер, с проверкой версией. Если версия отличается, то сделай проверку файлов и потом уже обновляй.
2) Можно сделать проверку контрольной суммы файлов, при каждом запуске игры. Будет отправляться запрос на сервер и сверяться этими данными на клиенте. Также это спасет от некоторых читеров.
Для аренды сервера, самое надежное решение это https://stormwall.pro/
ps для себя я делал вот так:
string pText = new WebClient().DownloadString("127.0.0.1/update/update.txt"); // версия программы, этот запрос выполняем при каждом запуске
f (pText.Split('|')[0] == Version.get_version)
{
MessageBox.Show("Обновление не требуется", "ИНФОРМАЦИЯ", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
DialogResult ok = MessageBox.Show("Обнаружена новая версия программы: " + pText.Replace("|", "\n") + "\nНажмите Да чтобы обновить версию.", "ИНФОРМАЦИЯ", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
if (DialogResult.Yes == ok)
{
WebClient webClient = new WebClient();
webClient.DownloadFile("127.0.0.1/update/srv.txt", "update.txt");
File.Move(@"this_programm.exe", @"this_programm.exeOLD");
File.Move(@"update.txt", @"this_programm.exe");
Thread.Sleep(500);
Application.Restart();
}
}
Игорь Виноградов
В принципе все просто, спасибо!
Похожие вопросы
- Стоит ли дальше учить C#?
- Программирование на C Sharp (C#)
- Сегодня начал учить c#, решил сделать калькулятор простой и столкнулся с такой ошибкой при компиляции, хелпуйте.
- Что лучше C# или C++?
- Зачем разбивать код в C# на отдельные классы?
- Помогите пожалуйста. Написать на C#
- Python, C, C++, C#, Что выбрать-то?
- Помогите разобраться с заданием! C#
- Стоит ли изучать c# в 13 лет?
- Нужна помощь с задачей C#