|
0 / 0 / 0
Регистрация: 31.05.2017
Сообщений: 33
|
||||||
Серверный движок31.05.2017, 12:52. Показов 6824. Ответов 80
Метки нет (Все метки)
привет у меня такой вопрос, делаю игру и пишу собственный серверный движок. подскажите в правильном ли я направлении двигаюсь? подойдет ли данный подход для написания своих серверов (чат, авторизация, игровой сервер)?
вот пример кода сервера авторизации который я набросал
0
|
||||||
| 31.05.2017, 12:52 | |
|
Ответы с готовыми решениями:
80
Серверный процесс Реализовать клиент-серверный чат (консольная версия) Как переписать программу под серверный вариант |
|
14807 / 9580 / 1368
Регистрация: 21.01.2016
Сообщений: 36,086
|
|||
| 02.06.2017, 08:24 | |||
|
Добавлено через 7 минут
0
|
|||
|
0 / 0 / 0
Регистрация: 31.05.2017
Сообщений: 33
|
|||||||||||
| 02.06.2017, 08:41 [ТС] | |||||||||||
|
Usaga т.е. мне не слудует использовать task\async\await? возможно нужно использовать более низкоуровневую штуку , такую как: SynhronizationContext? или опуститься еще глубже до Invoke? но про инвоки написано что они только на винде работают(что-то в этом роде
Или использовать пул потоков? ThreadPool Добавлено через 4 минуты а может я просто забиваю себе голову и нужно было написать что-то типа
или же вот какой вариант:
0
|
|||||||||||
|
14807 / 9580 / 1368
Регистрация: 21.01.2016
Сообщений: 36,086
|
||
| 02.06.2017, 08:45 | ||
|
Добавлено через 1 минуту Т.е. я рекомендую обзавестись пониманием происходящего и уже потом начинать пользоваться.
0
|
||
|
0 / 0 / 0
Регистрация: 31.05.2017
Сообщений: 33
|
|
| 02.06.2017, 08:48 [ТС] | |
|
Usaga ок)
0
|
|
|
14807 / 9580 / 1368
Регистрация: 21.01.2016
Сообщений: 36,086
|
|
| 02.06.2017, 08:52 | |
|
wwworking, кстати, имей те в виду, что
Task.Run использует тот же пул потоков, что и ThreadPool. Использование Task предпочтительнее, так как API там богаче и удобнее и оно с асинхронностью дружит (если надо).
0
|
|
|
0 / 0 / 0
Регистрация: 31.05.2017
Сообщений: 33
|
|
| 02.06.2017, 10:10 [ТС] | |
|
Usaga, Хороший совет. Только нужно было обязательно уточнить, что async/await удобны только там, где используется одна фоновая задача. В случае с сервером, клиентов нужно обслуживать параллельно, а не по одному асинхронно (как позволяет делать async/await). Разница есть и она существенная.
не пойму этот момент, если мы используем async/await то получится что все задачи описанные таким образом будут происходить асинхронно, но в главном потоке? а для сервера нам нужно создавать отдельные потоки, потому async/await нам не подойдут?(или как?)
0
|
|
|
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
|
||||||||
| 02.06.2017, 10:14 | ||||||||
|
Остальное вроде верно.
0
|
||||||||
|
14807 / 9580 / 1368
Регистрация: 21.01.2016
Сообщений: 36,086
|
||
| 02.06.2017, 11:05 | ||
|
Таким образом можно оформлять только одну задачу "типа в параллель". Если нужна настоящая многозадачность, то тут только отдельные потоки.
0
|
||
|
0 / 0 / 0
Регистрация: 31.05.2017
Сообщений: 33
|
|
| 02.06.2017, 11:50 [ТС] | |
|
Usaga,для моего сервера как я понял мне нужны именно отдельные потоки, насчет Tasr.Run я не совсем понимаю как им пользоваться и что конкретно он выполняет, насчет пула потоков, я так понял что принцип его работы в следующем ( он как само-расширяющийся\сужающийся буфер. когда нам не хватает слотов для нового потока он его добавляет, а когда этот слот не нужен он его удаляет, приводя количество потоков к минимальному?)
Добавлено через 5 минут Dark Byte, 1) а правильно-ли использовать такую конструкцию? this.login = login; 2)насчет msg = "server ok".ToString(); писал сам потому и накосячил ) 3)Почему Account содержит msg? хз почему наверное не туда вставил, эта переменная должна выдавать ответ клиенту типа ОК 4)правильное-ли использование цикла while (true) или же нужно как-то по другому это дело проворачивать?. просто многие пишут что while (true) не есть хрошо
0
|
|
|
14807 / 9580 / 1368
Регистрация: 21.01.2016
Сообщений: 36,086
|
||||||
| 02.06.2017, 12:00 | ||||||
|
wwworking, Task.Run использовать очень просто:
0
|
||||||
|
0 / 0 / 0
Регистрация: 31.05.2017
Сообщений: 33
|
|||||||||||
| 02.06.2017, 12:07 [ТС] | |||||||||||
|
Usaga, т.е. мне нужно будет написать следующие?:
0
|
|||||||||||
|
14807 / 9580 / 1368
Регистрация: 21.01.2016
Сообщений: 36,086
|
||||||
| 02.06.2017, 12:39 | ||||||
|
wwworking, примерно так:
1
|
||||||
|
0 / 0 / 0
Регистрация: 31.05.2017
Сообщений: 33
|
|||||||||||
| 02.06.2017, 12:46 [ТС] | |||||||||||
|
Usaga, а откуда мы взяли ProcessClient?, домустим из моего кода
Добавлено через 2 минуты Usaga, получается что-ли так?
0
|
|||||||||||
|
14807 / 9580 / 1368
Регистрация: 21.01.2016
Сообщений: 36,086
|
|
| 02.06.2017, 12:49 | |
|
wwworking, ну да, типа того. Лучше метод свой запускать отдельно и передавать ему объект, а он уже пускай с ним сам разбирается: хочет один метод вызовет, хоте - пять.
0
|
|
|
0 / 0 / 0
Регистрация: 31.05.2017
Сообщений: 33
|
|
| 02.06.2017, 12:52 [ТС] | |
|
Usaga, ну да, типа того. Лучше метод свой запускать отдельно и передавать ему объект, а он уже пускай с ним сам разбирается: хочет один метод вызовет, хоте - пять. это вы сейчас пишите про { Working(clientObject) }), на этом этаме метод забирает себе объект и делает с ним что захочет? я просто не до понял вас
0
|
|
|
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
|
|||
| 02.06.2017, 12:58 | |||
for (;;), но это на мой взгляд менее читабельно.
1
|
|||
|
14807 / 9580 / 1368
Регистрация: 21.01.2016
Сообщений: 36,086
|
|
| 02.06.2017, 13:04 | |
|
wwworking, да, запускайте в потоке свой метод и передавайте ему объект целиком, а там уже работайте с ним как надо.
0
|
|
|
0 / 0 / 0
Регистрация: 31.05.2017
Сообщений: 33
|
||||||||||||||||
| 02.06.2017, 13:09 [ТС] | ||||||||||||||||
|
Dark Byte,сейчас у меня такой вот пирог и я думаю вот у меня в строке висит
Добавлено через 3 минуты Usaga, а что насчет строк
0
|
||||||||||||||||
|
14807 / 9580 / 1368
Регистрация: 21.01.2016
Сообщений: 36,086
|
|
| 02.06.2017, 13:44 | |
|
wwworking,
var только для сокращения, уменьшает количество писанины, на функционале не сказывается. Использовать или нет, решать вам. Я использую.
0
|
|
|
0 / 0 / 0
Регистрация: 31.05.2017
Сообщений: 33
|
||||||||||||||||
| 02.06.2017, 14:57 [ТС] | ||||||||||||||||
|
Usaga, Dark Byte, В общем вот что у меня на данный момент получилось:
0
|
||||||||||||||||
| 02.06.2017, 14:57 | |
|
Реализовать клиент серверный проводник для просмотра файлов на компьютере По нажатию на кнопку данные из input записываются в сессию+серверный редирект на другую страницу А кто сделал движок этого форума, потому что у многих русскоязычных форумов для программистов и не только движок похожий и кто его создал? Серверный апгрейд серверный шкаф Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|