powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / TServerSocket TClientSocket в FireMonkey
11 сообщений из 11, страница 1 из 1
TServerSocket TClientSocket в FireMonkey
    #38990305
kaskas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте
Мне нужно организовать обмен массивами типа unsigned char между приложением и контроллером через Ethernet. То есть "в сети" будет всегда 1 клиент и 1 сервер.
Столкнулся со следующей проблемой:
При создании приложения на VCL для передачи массивов типа char пользовался указанными в названии темы компонентами
Код: plaintext
1.
2.
3.
4.
5.
6.
ServerSocket1->Socket->Connections[0]->SendBuf(Message,MessLenght)
void __fastcall TfrmMain::ServerSocket1ClientRead(TObject *Sender, TCustomWinSocket *Socket)
{
RecLenght = Socket->ReceiveLength();
Socket->ReceiveBuf(RecBuffer,RecLenght);
}


Сейчас пишу аналогичное приложение на FireMonkey, и тут указанных компонентов нет.. Попробовал заморочиться с Indy (IdCmdTCPServer1, IdCmdTCPClient1) - пока получается только отправить/получить String, и то как-то неудобно и муторно..
Код: plaintext
1.
2.
MyContext->Connection->IOHandler->WriteLn("lala");
AContext->Connection->IOHandler->ReadLn();



Попробовал через TcpClient1... От клиента серверу строка уходит, от сервера клиенту - нет.. (для начала строку хотя бы стараюсь ловить)
Код: plaintext
1.
2.
TcpClient1->Sendln("1223"); //работает
TcpServer1->Sendln("asd"); //не работает



Подскажите пожалуйста, есть ли "заменитель" TServerSocket TClientSocket в FireMonkey? Или может чем ещё можно решить мою задачу.. Или хоть как это сделать через Indy?..

Заранее спасибо!
...
Рейтинг: 0 / 0
TServerSocket TClientSocket в FireMonkey
    #38990473
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kaskas,

в С есть просто socket api, в win winsocks.

когда пишут на С, их и используют, а если ты хочешь писать как на дельфи, я только могу тебя перекинуть в форум по дельфи.
...
Рейтинг: 0 / 0
TServerSocket TClientSocket в FireMonkey
    #38991205
kaskas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не надо меня никуда отправлять пожалуйста=) хотя бы пока;)

а можно подробнее, как что пишется на C++? Какую компоненту надо на форму кинуть и какой метод задействовать хотя бы.. Обязательно, чтоб на vcl не завязано было.
...
Рейтинг: 0 / 0
TServerSocket TClientSocket в FireMonkey
    #38991316
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kaskasКакую компоненту надо на форму кинуть.. Обязательно, чтоб на vcl не завязано было.это неразрешимое противоречие. Либо компонент на форму, либо чтоб на vcl не было завязано.
...
Рейтинг: 0 / 0
TServerSocket TClientSocket в FireMonkey
    #38991523
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kaskasне надо меня никуда отправлять пожалуйста=) хотя бы пока;)

а можно подробнее, как что пишется на C++? Какую компоненту надо на форму кинуть и какой метод задействовать хотя бы.. Обязательно, чтоб на vcl не завязано было.

примеры серверов и клиентов tcp/upd от CMU
ещё один клиент
...
Рейтинг: 0 / 0
TServerSocket TClientSocket в FireMonkey
    #38992166
kaskas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
egorych, при всем уважении, думаю вы ошибаетесь...

MasterZiv, спасибо огромное! Изучаю..
...
Рейтинг: 0 / 0
TServerSocket TClientSocket в FireMonkey
    #38992172
kaskas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ничего не получается.. Описанных в этих юнитах инклудов у меня по умолчанию не нашлось. Поискал заголовочные файлы просто на ПК - нашлось по несколько разноразмерных копий.. Попытался их подсунуть - rad_studio стал ругаться на заголовочные файлы внутри этих свежедобытых заголовочных файлов, которых в свою очередь тоже несколько... в общем тупик :(
...
Рейтинг: 0 / 0
TServerSocket TClientSocket в FireMonkey
    #38992180
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В 6 билдере у Indy кроме WriteLn, ReadLn есть ReadBuffer и WriteBuffer.
...
Рейтинг: 0 / 0
TServerSocket TClientSocket в FireMonkey
    #38992200
kaskas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
извиняюсь, что не написал сразу.. Пишу на Embarcadero RAD Studio XE3. Полагаю, там другая версия Indy, потому что все, что выдает Indy - на скриншоте http://s019.radikal.ru/i632/1506/24/3bd51e123087.jpg . И там нет этих замечательных методов:(
...
Рейтинг: 0 / 0
TServerSocket TClientSocket в FireMonkey
    #38992201
kaskas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что получилось в итоге
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
unsigned char MessageToController[12];
/*заполняем MessageToController*/
TMemoryStream *t = new TMemoryStream;
// t->SetSize(12);
// t->Clear();
t->Write(MessageToController, 12);
t->Position = 0;
IdCmdTCPClient1->Socket->WriteBufferClear();
IdCmdTCPClient1->Socket->WriteBufferOpen();
IdCmdTCPClient1->Socket->Write(t,12,true);
IdCmdTCPClient1->Socket->WriteBufferClose();
delete t;


все отсылается, wireshark тому свидетель, но почему-то добавляется 4 байта перед моим массивом (00 00 00 0С), видимо длина посылки. И я так полагаю именно из за этой приставки сервер меня отключает, и я получаю 10054 ошибку. Можно ли префикс этот убрать как-то?
...
Рейтинг: 0 / 0
TServerSocket TClientSocket в FireMonkey
    #38992507
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kaskasНичего не получается.. Описанных в этих юнитах инклудов у меня по умолчанию не нашлось. Поискал заголовочные файлы просто на ПК - нашлось по несколько разноразмерных копий.. Попытался их подсунуть - rad_studio стал ругаться на заголовочные файлы внутри этих свежедобытых заголовочных файлов, которых в свою очередь тоже несколько... в общем тупик :(

Ты не должен это компилировать, это для POSIX, ты должен на это посмотреть как на пример.

Под Windows надо немного по-другому.

ещё сервер

ещё всё вместе (статья)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / TServerSocket TClientSocket в FireMonkey
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]