Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TClientSocket ;в компоненте


Юрий ©   (2002-10-24 05:31:00) 

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

Ход мыслей такой:

В програме:
type
TForm1 = class(TForm)
MyComp: TMyComp;
....................
procedure TForm1.button1click(Sender : tobject);
begin
MyComp.ExecQuery;
end;

В компоненте
type
TMyComp = class(TComponent)
S : TClientSocket;
..............................

procedure S.ExecQuery;
begin
.......
S.Port:=...
S.Address:=...
If not S.Active then S.Active:=true;
While not S.Active do Application.ProcessMessages;
S.Socket.SendBuf(Buf,N);

здесь что-то должно быть...

N:=S.Socket.ReceiveLength;
S.Socket.ReceiveBuf(Buf,N);
end;

Спасибо.


Юрий   (2002-10-24 20:52:00) [1]

Так что,никто не может мне помочь в этом вопросе?


Юрий   (2002-10-24 09:34:00) [2]

Есть ли какая-нибудь ссылка или код, что бы посмотреть на это?


Bsl   (2002-10-24 07:56:00) [3]

Чтобы все в одной процедуре - надо синхронный connection type, кроме того, нужно создавать отдельный thread для чтения.
Если асинхронный тип, то надо отлавливать событие OnXXXX[Read|Write] - в зависимости от клиента/сервера. Кроме того, нужно включать в передаваемый поток служебныю информацию, т.к. при асинхорнном соединении данные приходят кусками.


Наверх

Титульная страница Поиск, карта сайта Написать письмо