Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблемы с передачей данных от ClientSocket 
:(
    Опции темы
Serega
Дата 16.4.2005, 21:44 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











есть проблема передачи данных от СlientSocket ServerSockety. Приведу пример кода:
Client

void __fastcall TForm1::Button1Click(TObject *Sender)
{
ClientSocket1->Active=true;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)
{
ClientSocket1->Socket->SendText(Edit1->Text);
ClientSocket1->Socket->SendText(Edit2->Text);
}
//---------------------------------------------------------------------------

Server
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
ServerSocket1->Active=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
TCustomWinSocket *Socket)
{

Edit1->Text=Socket->ReceiveText();
Edit2->Text=Socket->ReceiveText();

}

в результате посылаются два мэсага от двух эдитов, но выводятся они тока в первый эдит. как мне разделить передаваемые данные. и могу ли я передавать от сервера результат, например склеенную из двух полученных мэсагов строку?
  Вверх
drinkOut
  Дата 16.4.2005, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 10.2.2005
Где: мой стакан?

Репутация: нет
Всего: нет



По-моему тебе нужно вставить разделитель в передаваемый текст.
Вот примерный код:
Код
/* CLIENT */

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  ClientSocket1->Open();
}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)
{
  char* textToSend;
  strcat(textToSend, Edit1->Text);
  strcat(textToSend, "\n");
  strcat(textToSend, Edit2->Text);
  ClientSocket1->Socket->SendText(textToSend);
}
//---------------------------------------------------------------------------

/* SERVER */

__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
  ServerSocket1->Open();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
TCustomWinSocket *Socket)
{
  Edit1->Text = Socket->ReceiveText();
  Edit2->Text = Socket->ReceiveText();
}

Но, правда, я писал экспромтом (C++ Builder'а сейчас под рукой нет), так что возможны некоторые погрешности... smile

В крайнем случае, если вышепреведённый код не покатит, то можно сначала записать текст из сокета в какую-нибудь строковую переменную, а потом уже заняться парсингом этой строки и распределинием нужных кусков по нужным контролам.

Это сообщение отредактировал(а) drinkOut - 16.4.2005, 23:29
--------------------
Жизнь жестока - когда у меня на руках все карты, она начинает играть в шахматы...www.certifications.ru - проверь себя
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0511 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.