Форум программистов, компьютерный форум, киберфорум
Кроссплатфор­менная разработка
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
98 / 10 / 0
Регистрация: 21.02.2011
Сообщений: 474

Сетевое приложение под Linux embarcadero

04.05.2016, 21:34. Показов 4931. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.

Тут вот какое дело. Все виндоус да виндоус... А вот раз, и возникла задача создания весьма нетривиального приложения под Linux. Пользуюсь я все той же средой - Embarcadero XE8. Нашел все что угодно, iOS, Android, но только не Linux. Причем ищется вариант с ГУЁм. Нетривиальность приложения в следующем. Идея работы:
Весь сетевой трафик на выход -> Приложение (Что-то там делается) -> в сеть
Принятые данные <- Приложение (что-то там сделалось) <-Из сети
Приложение будет работать в составе Linux на отдельном от компьютера устройстве (USB) и для самого компа должно выглядеть как еще одно сетевое подключение. Само устройство - USB с одной стороны и rj45 (wifi, gprs, 4g...) с другой
Где читать? Куда смотреть. Я рад начать ковырять сам, только киньте идею как эту эмбаркадеру убедить что linux таки тоже вполне хорошая вещь и под нее тоже приложения делать есть добро.

Простите за слог. Азимова люблю почитать.

Добавлено через 1 час 4 минуты
Как один из вариантов можно рассматривать приложение под андроид, с теми же условиями использования. Только вот не уверен на счет эмуляции сетевого подключения в этом случае.

Добавлено через 7 минут
Либо, как вариант. Стандартное приложение для виндоус. Со всеми этими графическими интерфейсами, dll, (библиотеками) bpl-ками от эмбаркадеры, так как стандартными фичами INDY пользоваться буду и не только ими, но далее проект скомпилировать под linux/android. То есть Экзешник станет исполнимым под linux/android, библиотеки станут so-шками ну и так далее. Что предпринять? Насколько реальна такая компиляция и билд?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.05.2016, 21:34
Ответы с готовыми решениями:

Клиент-серверное приложение "Удаленный проводник" приложение на QT под Linux
Как в данном проводнике использовать функции qdir и qfile? Как составить клиенту запрос на сервер, чтобы тот выдал ему список файлов и...

Linux приложение из под Windows
Вопрос в следующем. Возможно ли в Qt написать программу из под Windows (которая будет запускаться на Windows), а потом из этих же...

Сетевое приложение под Windows 8 выбор БД
Добрый день. Требуется создать сетевое приложение под Windows 8 (на сервере Windows Server 2012), подскажите какую базу данных лучше...

28
19 / 14 / 2
Регистрация: 24.06.2016
Сообщений: 127
Записей в блоге: 2
19.07.2016, 07:38
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от newline Посмотреть сообщение
вообщем-то. Вопрос довольно простой
Так а никто и не говорил, что он сложный. Просто для того чтобы э... legacy-кодить, при отсутствии опыта и наличии более-менее прямых рук, достаточно чтения документации и гугла. Для того чтобы стать программистом этого недостаточно. Нужен фундамент.
0
98 / 10 / 0
Регистрация: 21.02.2011
Сообщений: 474
19.07.2016, 08:12  [ТС]
Дык это, вот с реализацией бы мне помощь е повредила. Собственно алгоритмы, всякая там оценка их сложности или передача данных, обмены ключами, работы с массивами данных ну и математика (громе Галуа - это еще не осилил). Писать особо часто не приходится. Все теория, ну или Embarcadero. Там идея вообщем проще - нужное при старте пихаем в main, остальное под кнопками\событиями. Сигналами как-то заморачиваться не приходилось. Ну да, можно часть функций выкинуть в отдельные файлы-библиотеки если очень охота. Классы. Классная штука ООП но хочешь используй не хочешь-будет почти С. Всякие там контейнеры, работа с БД, Сокетами .... дофига чем кажется проще. А может просто чуть привычнее. Так что не пинайтесь, други. Все учатся чему - то (кто хочет) и все по-разному.

Добавлено через 5 минут
Вообщем есть пвопрос по передаче файла по UDP (именно UDP) по частям. Размер части - настраиваемый параметр. Завел дополнительный класс UDPConnection, .h, .cpp, добавил <QUDPSocket> - машина не под рукой с планшета пишу, но кажется так. Добавил +=network в файле проекта. Нашел инфу примерную как это делать но без привязки к QT (Любящей ООП) (Ничего против не имею). Может у кого есть пример подобной реализации?

Добавлено через 3 минуты
Передача файла через QUdpSocket

Добавлено через 1 минуту
о "по частям" тут речи не идет, к сожалению
0
19 / 14 / 2
Регистрация: 24.06.2016
Сообщений: 127
Записей в блоге: 2
19.07.2016, 12:15
newline, так это, я не хотел ничего сказать. Просто по прочтении Саммерфилда станет все понятно.

Добавлено через 32 секунды
Ведь главное - это понять философию, а все остальное - дело техники.
0
98 / 10 / 0
Регистрация: 21.02.2011
Сообщений: 474
24.07.2016, 01:34  [ТС]
Добрый день. Не могу понять почему из функции main не могу вызвать другую функцию. Ошибка
C:\...\main.cpp:32: error: cannot call member function 'int OT_GUI::SetDataramSize(int)' without object
OT_GUI::SetDataramSize(DefaultDatagram);
Как вызывал
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "ot_gui.h"
#include <QApplication>
...
#include <QSlider>
#include <QLCDNumber>
...
int main(int argc, char *argv[])
...
 
    QAbstractSlider DatagramSetSlider;
    QLCDNumber DatagramSizeNumber;
 
    int DefaultDatagram=256;
    OT_GUI::SetDataramSize(DefaultDatagram);
В .h файле,
C++ (Qt)
1
2
public slots:
int SetDataramSize(int);
в .cpp
C++ (Qt)
1
2
3
4
5
6
7
int OT_GUI::SetDataramSize(int GetDatagramSize)
{
    int DatagramSize=64;
    DatagramSize=GetDatagramSize;
    ui->DatagramSizeNumber->display(DatagramSize);
    return DatagramSize;
}
^
0
Эксперт .NET
 Аватар для Usaga
14821 / 9605 / 1369
Регистрация: 21.01.2016
Сообщений: 36,155
24.07.2016, 06:47
newline, объект класса нужно создать и уже вызывать его метод.
0
98 / 10 / 0
Регистрация: 21.02.2011
Сообщений: 474
28.07.2016, 21:56  [ТС]
Все остальные методы этого самого класса работают нормально. То есть есть допустим некий класс, В нем много функций (методов) в public slots - все всем доступно. Так? Так вот они работают, кроме случая:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class myclass: public QMainWindow
...
public slots:
1...
2...
n...
void slotName1();
void slotName2()//
 
в .cpp файле так:
void myClass::slotName1()
{
  ...
  slotName2(); //Эта хрень ну никак не запускается!!! почему????
}
void myClass::slotName2()
{
....
}
Добавлено через 1 минуту
функция slotName1 запускается и отрабатывает. При попытке записать так как выше - ругань компилятора...
0
Эксперт .NET
 Аватар для Usaga
14821 / 9605 / 1369
Регистрация: 21.01.2016
Сообщений: 36,155
29.07.2016, 04:23
Цитата Сообщение от newline Посмотреть сообщение
void slotName2()//
// - так и записано в коде?

Выложи сюда заголовочный файл и файл с реализацией класса.
0
98 / 10 / 0
Регистрация: 21.02.2011
Сообщений: 474
29.07.2016, 18:44  [ТС]
Неа, так не записано конечно. Там точка с запятой. Пришел на работу и на рабочем компе, ничего не меняя запустил... Темные электрические силы блин.
0
98 / 10 / 0
Регистрация: 21.02.2011
Сообщений: 474
10.08.2016, 02:39  [ТС]
Приветствую. Новый затык. Не нашел решения с помощью корпорации на букву "Г" и их поисковика. Который, безусловно хорош, не подумайте что я их обозвать как-то хотел.
Итак. Добавил Класс SQLite. Соответственно появились файлы sqlite.h и sqlite.cpp. Нужна мне табличка sql. QT +=sql добавил в .pro
Вот такой вот файл sqlite.cpp
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
#include "gui.h"
#include "ui_gui.h"
#include "sqlite.h"
 
SQLite::SQLite()
{
  Qobject::connect(GUI::ui->KeyCheck, SIGNAL(clicked(bool)), this, SLOT(OpenDB())); //KeyCheck  это просто check box из палитры для формы если ее кликнули то выполнить функцию OpenDB
}
void OpenDB()
{
...
}
Вот файл SQLite.h
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#ifndef SQLITE_H
#define SQLITE_H
 
#include <QMainWindow>
#include <QObject>
#include <QWidget>
 
class SQLite
{
public:
  SQLite();
public slots:
  void OpenDB();
};
 
endif
При запуске ругается "invalid use of non-static data member "GUI::ui"
Qobject::connect(GUI::ui->KeyCheck, SIGNAL(clicked(bool)), this, SLOT(OpenDB()));

Что ему не так то?

Добавлено через 4 минуты
Проблема в том, что SQLite отдельный класс.
Как из него прицепиться к форме?

Добавлено через 14 минут
Если перенести строку
Qobject::connect(GUI::ui->KeyCheck, SIGNAL(clicked(bool)), this, SLOT(OpenDB()));
Немного ее поменяв вот так
Qobject::connect(ui->KeyCheck, SIGNAL(clicked(bool)), SQLite, SLOT(OpenDB()));
в файл gui.cpp, добавив #include "sqlite.h", что по-моему тоже неплохая мысль, то ругается
cannot call member function SQLite::OpenDB without object...
Блин что не так? Есть отправитель сигнала, есть сигнал, есть класс получатель и в частности его метод - слот. Вот что не так?

Добавлено через 10 минут
Так, ругань сменилась на expected primary-expression before',' token
Qobject::connect(ui->KeyCheck, SIGNAL(clicked(bool)), SQLite, SLOT(OpenDB()));
Выделена запятая после SQLite,
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.08.2016, 02:39

[Mono] Чтобы приложение, разработанное на С#, работало и под Linux и под MacOS
У меня вопрос. Есть приложение разработанное на С# на .Net Framework 2.0 в среде VS2010 Express. Хочу чтобы работало и под Linux и под...

Клиент-серверное приложение под Linux
Не могу написать код клиент-сервера для передачи/приема файла по протоколу UDP для линукса, не поможете найти? В нете нашел только для...

Готовое приложение скомпилировать под Linux
Ситуация такая. Есть написанное в VS 2008 на C#/ C++ консольное приложение( решение прилагаю). Как скомпилировать его под линукс? Слышал...

Как запустить консольное приложение под Linux?
ДД. Нужна помощь. В линукс если создаем приложение, формы после компиляции все отлично, видим результат. А если создаем простую программу?...

Как скомпилировать приложение под Linux из Windows?
Доброе время суток! Я никогда не компилировал приложения под Linux, а сейчас возникла в этом необходимость. Как скомпилировать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru