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

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

04.05.2016, 21:34. Показов 4795. Ответов 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
14371 / 9478 / 1360
Регистрация: 21.01.2016
Сообщений: 35,749
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
14371 / 9478 / 1360
Регистрация: 21.01.2016
Сообщений: 35,749
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
Ответ Создать тему
Новые блоги и статьи
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru