|
1 / 1 / 0
Регистрация: 08.01.2023
Сообщений: 38
|
|||||||||||
Сервер на С, linux14.01.2023, 00:46. Показов 4485. Ответов 29
Доброго времени суток.
Начну новую тему по серверу. Это по большей части тема-просьба (тут на форуме их много, но все старые, многие без ответов), у меня необходимость, а кому-то может будет интересно.Нужен сервер, принимающий определённые данные. В качестве каркаса взял (пока для ознакомления, т.к. с сокетами и серверами вообще никогда не работал) такой код: Сервер:
Вложение 1395326 Вложение 1395327 Код клиента немного модифицировал, добавив ему параметр передачи порта, т.к. в примере, серверу почему-то порт назначается рандомно, хотя и прописан жестко. Ещё не разбирался с этой проблемой. Пы.сы.: ищу единомышленников, буду размещать этот текст на других форумах. Клиентом в дальнейшем будет железяка и данные нужно будет принимать другие. У меня не хватает времени на изучение вопроса, потому и решил написать в сообществе. Сразу же отвечу на предполагаемый вопрос: нет, мне никто не платит за это, это больше хобби (пока), но есть планы. Следовательно если рассчитываете сразу заработать, на данном этапе не выйдет.
0
|
|||||||||||
| 14.01.2023, 00:46 | |
|
Ответы с готовыми решениями:
29
Сервер на Linux Сервер на основе Linux |
|
754 / 351 / 90
Регистрация: 07.01.2023
Сообщений: 1,451
|
||
| 14.01.2023, 09:44 | ||
|
0
|
||
|
1 / 1 / 0
Регистрация: 08.01.2023
Сообщений: 38
|
|
| 14.01.2023, 10:32 [ТС] | |
|
Azathtot, Если под Bare Metal Вы имеете в виду архитектуру серверного железа/ос, то да есть особенности, т.к. Я не особо силён в сетевом и выбрал из того что было более доступно. Да, обмен короткими сообщениями, с типом сокетов еще не определился. По мере написания.
0
|
|
|
Просто Лис
|
||
| 14.01.2023, 10:38 | ||
|
В типичных десктопах/ноутбуках/серверах архитектура процессора x86_64 (она же amd64).
0
|
||
|
1 / 1 / 0
Регистрация: 08.01.2023
Сообщений: 38
|
||
| 14.01.2023, 10:54 [ТС] | ||
|
Рыжий Лис, а при чем тут ag900-s?
"Description The Ag9000-S series of modules are designed to extract power from a conventional twisted pair Category 5 Ethernet cable," По-моему это не туда. Ну да, лучше голый http)) Добавлено через 15 минут Тема про сервер, особо не важно на чем писан клиент, на сервер придут данные, их обработать.
0
|
||
|
754 / 351 / 90
Регистрация: 07.01.2023
Сообщений: 1,451
|
||
| 14.01.2023, 10:59 | ||
|
Соответственно код будет ну совсем не похож. А к стати, чем вас MQTT или ModBus over TCP не устраивает, что решили свой велосипед с квадратными колесами городить?
1
|
||
|
1 / 1 / 0
Регистрация: 08.01.2023
Сообщений: 38
|
|
| 14.01.2023, 11:41 [ТС] | |
|
Azathtot,
Скорее всего буду городить протокол обмена поверх tcpip, посмотрю в сторону lwip, спасибо за инфу. Но на железке связь через simcom, потому там врядле удастся что поменять, если не лезть в EAT, разве что на сервере.
0
|
|
|
754 / 351 / 90
Регистрация: 07.01.2023
Сообщений: 1,451
|
|
| 14.01.2023, 11:53 | |
|
Зачем вам сервер-то свой писать, используйте MQTT. Вон, тот же mosquitto разверните. А если у вас вообще SIMxxxx стоит то там проблем не будет никаких. И lwIP не нужен
1
|
|
|
267 / 199 / 30
Регистрация: 26.11.2022
Сообщений: 862
|
|
| 14.01.2023, 22:37 | |
|
Ну задача для написания собственного сервера нам неизвестна - может скилл прокачать в программировании.
Для конструктивного обсуждения хотелось бы увидеть ТЗ. Ибо каждый из нас по своему додумывает чего же хочет ТС
0
|
|
|
1 / 1 / 0
Регистрация: 08.01.2023
Сообщений: 38
|
||
| 15.01.2023, 00:12 [ТС] | ||
|
ТЗписальщик из меня не очень, если Вам тз на уровне КБ нужно)) Могу попробовать сделать ТЗ в каком-то приближении к какому-то формату, если вам так понятней будет. Но никогда подобным не занимался. От сервера что нужно: Принять дынные от клиента(какие? ну, для начала, просто байт), принять дату(пример с датой уже есть, вот от него кусок и оторву), запихнуть в бд, когда запросят данные - выдрать из бд, отправить. БД хотелось бы sql. SSL(или что-то другое), мультипоточность, аутентификация, хм, ну что же ещё добавить, наверное контрольную сумму ещё надо посылать, чтобы проверить ничего ли не отпало по дороге. Кроме клиента непосредственно железки, должен быть ещё клиент Android с аутентификацией, на котором можно глянуть что же наприсылала клиент железка. Но туда я и подавно ещё не лез. Только примеров накачал.
0
|
||
|
267 / 199 / 30
Регистрация: 26.11.2022
Сообщений: 862
|
||
| 15.01.2023, 02:48 | ||
И сразу же к вам вопрос - а существующее решение вас не устраивает. тот же nginx+php+sql? Что именно не устраивает? может вам надо к этой связке свой модуль дописать? Или у вас требования такие что существующее решение вас не устраивает по каким-то характеристикам - тогда надо их обозначить. Сейчас практически любой MCU сумеет послать по http кусок данных. Давайте помогу дальше с ТЗ: вот ряд вопросов в продолжении того что вы написали: 1)сколько планируется на начальном этапе железок которые будут что-то передавать на сервер? 1 - 100 -1000 - 10000 штук? Сколько при полностью работающей системе? Сколько запросов в секунду? Отсюда требования к серверу. 2)Протоколы какие будут? данные от железок надо шифровать? Ключи зашиты в железки или надо в железках делать полноценную поддержку SSL и проверку сертификатов? 3)Железкам надо отвечать - тоесть передавать обработанные команды или просто собирать от них инфу? ТЗ вам надо написать для себя в любом виде - ибо грамотно написанное и максимально подробное ТЗ это половина всей работы. Может сейчас вы вообще неправильным путём идёте - может серверную часть можно собрать на существующих известных решениях, а вам сосредоточиться на железках или логике обработки информации от них.
0
|
||
|
1 / 1 / 0
Регистрация: 08.01.2023
Сообщений: 38
|
|
| 15.01.2023, 11:28 [ТС] | |
|
Уже было на php, nginx, http, оренж клиент ну не очень надёжно это. Сейчас железо другое. Сделать попроще, протестить а потом написать сервер? Ну можно и так. А тогда как мне клиент смотрелку прикрутить в связке к хттп серверу? Надо отдельный серв для смотрелки. Тогда проше сразу писать.
1. Демка, 1 полноценная 2. Simcom умеет ssl, но помимо него еще надо какуюто заморочку на случай если отпадет шифрование 3. Надо.
0
|
|
|
267 / 199 / 30
Регистрация: 26.11.2022
Сообщений: 862
|
|||
| 15.01.2023, 13:02 | |||
|
Для тестов как раз проще всего написать сервер на связке nginx+php+sql
там сразу пишется и приём данных и хранение и визуализация - можно очеь быстро создать вполне рабучую систему. Её единственным ограничением будет производительность - пару тысяч клиентов и железок одновременно ужё не потянет.
Написать самому сервер это очень непросто. Для демонстратора вы очень быстро его сделаете, но как только дело дойдёт до постоянного функционирования системы - то сразу начнутся проблемы.
Вот чтобы все эти вопросы отпали надо писать ТЗ и рисовать структуру вашей системы.
0
|
|||
|
1 / 1 / 0
Регистрация: 08.01.2023
Сообщений: 38
|
||||
| 15.01.2023, 18:18 [ТС] | ||||
|
Ну а из бд уже страничку или что-либо ещё. Но повторюсь, это уже проходили. Тема понемногу превращается из "Сервер на С" в "А зачем вам сервер на С?" ![]() А вот нужен. На счёт ТЗ убедили, пропишу то что надо от сервера, от клиента, как смогу.
0
|
||||
|
754 / 351 / 90
Регистрация: 07.01.2023
Сообщений: 1,451
|
||
| 18.01.2023, 21:35 | ||
|
Поэтому сначала пишете ТЗ, анализируете еего на предмет особенностей обмена, забываете про "написать сервер на Си" и спокойно ставите mosquitto. Ну а уж если вы пишете серевер на Си, до делаете его неблокирующим и сначала определитесь с протоколом обмена.
0
|
||
|
1 / 1 / 0
Регистрация: 08.01.2023
Сообщений: 38
|
|||
| 23.01.2023, 17:43 [ТС] | |||
|
0
|
|||
|
1 / 1 / 0
Регистрация: 08.01.2023
Сообщений: 38
|
||
| 19.05.2023, 22:25 [ТС] | ||
|
Подключение, сокет-клиент в отдельный процесс, и там прием-обработка-передача. По крайней мере, сейчас так. Блокировка в данном случае, может возникнуть, на сколько я понимаю в отдельно взятом дочернем процессе. А неблокирующий режим можно добавить позже, после передачи сокета в дочерний процесс.
0
|
||
|
Windows must die
|
|||
| 19.05.2023, 22:37 | |||
|
О, какой жуткий код!
А когда клиентов много, что делать? Таки поллинг надо внедрять. Либо каждому клиенту по потоку (что чревато, если клиентов будет очень много). Увы, в линуксе до сих пор количество потоков/процессов ограничено убогими 65534 штуками (т.к. init занял нулевой). Все жду: когда же это уже в 64-битную систему перейдет? Скажем, есть сервер: 4096 ядер, пару терабайт оперативки, а количество потоков все так же адово ограничено... Вот и лепят люди от безнадежности убогие виртуалки вместо того, чтобы не расходовать возможности сервера попусту! Добавлено через 1 минуту Добавлено через 1 минуту
0
|
|||
| 19.05.2023, 22:37 | |
|
Помогаю со студенческими работами здесь
20
Apache сервер на Linux Терминальный сервер на Linux 1c сервер под Linux Портирование на Linux сервер
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|