|
0 / 0 / 0
Регистрация: 08.02.2024
Сообщений: 9
|
|
Сетевое программирование14.03.2024, 22:06. Показов 32341. Ответов 30
Метки нет (Все метки)
Всем привет.
Подскажите, что изучать лучше будет дальше Изучаю c++ яп, хочу сейчас влиться в сетевое программирование. Подскажите, пожалуйста, с чего начать изучение(вообще полный ноль в нем) И если есть какие-нибудь материалы на эту тему, посоветуйте
0
|
|
| 14.03.2024, 22:06 | |
|
Ответы с готовыми решениями:
30
Сетевое программирование на С++ Сетевое программирование. Сетевое программирование. Ваше советы |
| 13.05.2024, 11:52 | |
|
В Qt Creator 13 не был исправлен баг при котором пропадает виртуальное устройство Android'а. Хотя зимой я спрашивал об этом на их официальном форуме. Мне дали ссылку на Qt Creator с заплаткой. Я его протестил, вроде работало. Баг не всегда себя проявляет, но очень часто. Я использую новый Qt Creator 13. Приходится после каждого запуска Qt Creator создавать его заново с тем же именем. Просто Qt Creator его не видит после перезапуска. После добавления устройства с тем же именем, что и в прошлый раз нескольких копий устройств не создаётся. Может автору темы или кому-то ещё пригодится эта информация.
Так добавляется устнойство. Сначала в Qt Creator в меня слева вверху нужно выбрать: "Edit" -> "References...". Появится окно где нужно нажать две вкладки ("Devices" и "Devices") и кнопку "Add": В открывшемся окне нажать "Android Device" > "Start Wizard": Откроется следующее окно, в котором нужно написать имя устройства, выбрать какое устройство создавать, его архитектуру - зависит от того, какой Image вы поставили в "SDK Manager", но всегда выбираю x86 для эмулятора. Надо выбрать API - ставится в "SDK Manager". Версия SDK 25 соответстует Android 7.1.1, но надо учитывать, что Qt5 поддерживал Android 5 (API 21), а Qt6 официально поддерживает Android 8 (API 26). Хотя я тестирую приложения из Qt6 на Redmi 4X, где Android 7.1.1 и оно работает. Я читал в этой теме: Qt6 min android sdk version is API Level 26, что на Qt 6.6 работает Android 6 (API 23). Разработчики Qt гарантируют, что Qt 6.6 будет работать на Android 8. На bug report нужно будет указать какую версию Android вы используете и если эта версия попадает под поддержку, то bug report будет рассматриваться, в противном случае его почти сразу закроют. Будет добавлено виртуальное устройство: Нужно перейти на вкладку "Kits" и выбрать это устройство для "Android Qt 6.6.3 Clang x86": Теперь нужно выбрать сборку под эмулятор: И запустить приложение, нажав зелёный треугольник:
1
|
|
| 13.05.2024, 12:44 | |||||||||||
|
У меня есть пример рисования нескольких прямугольников разных: цветов, размеров, позиций и углов. Его можно использовать для тренировки на нескольких играх: змейка, тетрис и т.д. Можно использовать написание простых игр для тренировки навыков в программировании и изучении Qt. Пример собирается для Windows 10, Android Emulator и WebAssebmly. Можете результат сборки под Web закинуть мышкой на бесплатный хостинг https://www.netlify.com/ и у вас будет ссылка на ваше приложение, которую вы можете отправить друзьям в соц. сетях или опубликовать где-то, например, на форуме. Ссылка получается длинная, но её можно укоротить, погуглив "short url". Не знаю, правда, сколько живут такие короткие ссылки, поэтому их не использую. Только если для тестирования на телефоне. Например, такая демка с прямоугольниками для браузера.
Qt OpenGL ES 2.0 на веб работает, на эмуляторе работает: На реальном устройстве работает: На Windows 10 из EXE работает (кстати, этот же пример должен работать и на Linux, и на macOS, и на iOS): pro-файл
1
|
|||||||||||
| 13.05.2024, 13:20 | ||||||
|
Пробую в примере выше исправить OpenGL ES 2.0 на ES 3.0. Для Desktop надо написать "#version 130" в начале вершинного и фрагментного шейдеров, заменить "attribute" на "in" в вершинном шейдере и добавить "out vec4 fragColor;" в фрагментном:
А вот на эмуляторе оказывается "#version 300 es" работает. Значит, я, возможно, неправильную версию шейдеров указывал или ещё по какой-то причине. Но я всё равно буду использовать OpenGL ES 2.0, даже если найду способ как запустить ES 3.0 на Qt WebAssembly и способ, как не менять вручную "#version 130" на "#version 300 es" при сборке для Android, Desktop и WebAssembly, потому что Android и WebAssembly (WebGL 2.0) требуют "#version 300 es", а Desktop требует "#version 130". На OpenGL ES 2.0 мне ничего не требуется менять, а WebGL 1.0 поддерживается на большем количестве браузеров, в том числе более старых версий. WebGPU я даже не рассматриваю. У меня 1-3 FPS выдаёт. То есть для бюджетных ноутбуков WebGPU не вариант, а тем более он скорее всего не работает или плохо работает на бюджетных сматрфонах.
1
|
||||||
|
Модератор
|
||||
| 13.05.2024, 23:53 | ||||
|
Забил на separate shaders и перенес на телефон недописанную демку кубика рубика, пока выглядит как анимация. Что на компе что на телефоне осталось дописать управление (выбор через тест трафарета сделан). По сути OpenGL ES 3.0 (вроде ничего из 3.1 не использую, но указываю), но можно понизить и на 2, пишу на С++. Создаю контекст на egl частично вытащенный из шаблонного проекта. И смог запустить на телефоне, а не эмуляторе, крашила строчка с указанием core профиля. У меня на компе (не для андроида, а для пк) шейдеры с #version 310 es и precision mediump float; собираются без проблем, надо будет попробовать их использовать в рисовании
1
|
||||
| 14.05.2024, 01:55 | ||||
|
1
|
||||
|
6312 / 3035 / 1053
Регистрация: 01.06.2021
Сообщений: 11,543
|
|||||||
| 14.05.2024, 10:17 | |||||||
|
я реализовал несколько вариантов:
1
|
|||||||
| 14.05.2024, 13:36 | |
|
Royal_X, у меня в той демке в браузере на Unity управление мышкой - такое же как и в вашей: зажатой левой вращать и зажатой правой - крутить камеру. Вам нужно исправить, чтобы с верхней и нижней грани можно было вращать кубик. Правда, демка долго запукается у меня в браузере - секунд 30 где-то. Исходники демки прикрепил. Перепишу сначала на Three.js, чтобы в браузере быстрой запукалось и чтобы поупражняться с Three.js. Потом перепишу на чистый WebGL, а потом на Qt OpenGL ES 2.0, чтобы пальцем можно было крутить на Android - это же управление нужно добавить на Android для Qt WebAssembly, Three.js и чистого WebGL. Есть идея переписать на libGDX - можно тоже собирать под Android, Desktop и Web. Мне понравилась библиотека. Очень похожа на SFML, но намного более дружелюбна к Android, а ещё в ней есть API для 3D, а не только 2D, как в SFML. Причём, вроде бы, можно один раз собрать в jar и приложение будет запускаться на Windows, Linux и macOS. Мне нравилось, что из Unity, например, прямо на Windows можно было собрать не только EXE, но и исполняемый файл под Linux и maсOS. На Godot тоже так можно? Я немного пробовал Godot. Прошёл до конца их вводный туториал Your first 2D game. Отложил его, по крайней мере, пока они не выпустят версию 4.3 в июне числа 16-го, где они внесут исправления этого бага: The default Godot 4.2.1 application crashes in compatible mode on the Redmi 4X with OpenGL ES 3.2, из-за которого приложения не собираются на Redmi 4X (Android 7.1.1). Это исправление находится в Milestones на 4.3 (там как раз указано, что выполнено на 70%, а ожидаемая дата выпуска - 16 июня) Покупать новый телефон для меня не вариант. Хочу чтобы работало на бюджетных тоже.
Сфера сборку - это источник света, а то темновато там без него:
0
|
|
|
6312 / 3035 / 1053
Регистрация: 01.06.2021
Сообщений: 11,543
|
||
| 14.05.2024, 14:40 | ||
|
Дело в том, что если этого не сделать, то появляется ошибки инверсии осей, которые присутствуют и у вас. Возьмем, например, нажатие и перетаскивание курсора справа-налево. В зависимости от грани, у вашей камеры неопределенные поведения: - кубик не двигается, видимая грань вращается по часовой стрелке - кубик не двигается, видимая грань вращается против часовой стрелки - видимая грань не вращается, кубик вращается налево - видимая грань не вращается, кубик вращается направо Т.е. по сути я делаю абсолютно один и тот же драг правой кнопкой мыши справа-налево, но камера в зависимости от того, какая грань на экране, вращается 4-мя способами. Как по мне, такое поведение неприемлемо. У моего кубика хотя бы все это логично. При нажатии и перетаскивание курсора справа-налево: - кубик ВСЕГДА вращается в левую сторону - если видимая грань - верхняя, то идет вращение по часовой стрелке - если видимая грань - нижняя, то идет вращение против часовой стрелки Кстати, я вообще собираюсь ограничить камеру так, чтобы на верхнюю и нижнюю грани можно было смотреть только под углом, а не прямо. В таком случае, не будет этих вращений граней, а будет только поворот самого кубика. Остается главный вопрос: а можно ли сделать так, чтобы без ограничений камеры всё работало как и полагается (без ошибок инверсий)? Да, можно. Но я прикинул, что игра не стоит свеч. Добавлено через 10 минут 8Observer8, у вас еще источник света странный. На HDR солнце расположено в одном месте, а у вас искуственный источник вообще в другом. Да и зачем искусственный источник делать видимым (я про этот белый шар). Его можно и скрыть, оставив только его эффекты.
1
|
||
| 14.05.2024, 15:19 | |||
|
1
|
|||
|
6312 / 3035 / 1053
Регистрация: 01.06.2021
Сообщений: 11,543
|
|||
| 14.05.2024, 15:44 | |||
|
либо можно вообще убрать реалистичное освещение (как вот у меня) Но никоим образом не нужно добавлять точечные источники и превращать в операционный стол. Добавлено через 2 минуты
1
|
|||
| 14.05.2024, 17:37 | ||
|
Доделал демку на Phaser 3 и JavaScript по глобальной сети с мультиплеером. Можно походить и попрыгать в браузере: https://walk-and-jump-with-mul... glitch.me/ Сервер авторитарный. На сервере физика на Box2D-WASM и вся игровая логика, а клиент просто отображает картинки и спрайтовую анимацию. На клиенте может быть что-угодно: Three.js, libGDX, SFML, Godot, Unity,, Unreal Engine и т.д. Исходники сервера и клиента на бесплатном хостинге Glitch
1
|
||
| 14.05.2024, 17:37 | |
|
Выбор кафедры в дальнейшей жизни: прикладное программирование VS системное программирование C++ сетевое блог приложение Как создать сетевое приложение Как создать сетевое приложение? Сетевое программирование Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация
В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
|
Сукцессия 20. Война автоботов. Делаем ставки. Лёд против "пш-пш!".
anaschu 11.07.2026
Битва ИИ в ризосфере: Как мы скрестили жесткие ОДУ, закон Фика и «подземный шантаж»
Уважаемые коллеги!
Хочу поделиться уникальным опытом ведения междисциплинарной компьютерной разработки. Прямо. . .
|
Сукцессия 19. Какие выводы я сделал из модели? Часть 2.Внутримикоризный стехиометрический буфер и хроно-дискретные зоны экспансии
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы
Математический аппарат моделирования
|
Сукцессия 18. Какие выводы я сделал из войны грибов с деревьями? Часть 1- рассказ и немного про термины
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы
Математический аппарат моделирования
Система ОДУ описывает динамику изменения массы различных компонентов системы во времени. Ключевой. . .
|
|
Просветление в 5 секунд
kumehtar 10.07.2026
Андрей Веретенников выдал фразу недавно: "Вам не обязательно кем-то себя считать"
|
Эксперимент с картинкой-обложкой на CodinGame
Adler 10.07.2026
Решил на днях провести эксперимент. У меня есть аккаунт на CodinGame, ТОП-3 по РФ среди 2200 участников (в разделе соревнования по программированию ИИ-ботов). Там есть обложка, куда можно влепить. . .
|
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
|
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
|