Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.01.21;
Скачать: CL | DM;

Вниз

По поводу ITransport в TSocketConnection   Найти похожие ветки 

 
maxi   (2001-10-25 13:30) [0]

Помогите разобраться в чем причина:

procedure TForm1.Button4Click(Sender: TObject);
var Myblok : IDataBlock;
begin
MyTrans:= ITransport(SocketConnection1.GetServer);
MyBlok:=IDataBlock(SocketConnection1.GetServer);
MyTrans.Receive(True,45);
//if MyTrans.Connected=True then Label1.Caption:="True";
end;

Этотт код упорно не хочет работать (выдается сообщение о недопустимой операции с памятью), хотя строка:
MyTrans:= ITransport(SocketConnection1.GetServer);
проходит в работе без сбоев. Объясните, правильно ли я получаю ITransport?


 
Digitman ©   (2001-10-25 14:34) [1]

>maxi
эта строка

MyTrans:= ITransport(SocketConnection1.GetServer);

не будет работать уже потому, что метод
TDispatchConnection.GetServer возвращает интерфейс IAppServer, не имеющий
ничего общего с ITransport (я здесь не рассматриваю IUnknown)


По той же причине абсурдна и строка
MyBlok:=IDataBlock(SocketConnection1.GetServer);



 
maxi   (2001-10-25 16:17) [2]

Это я понял, однако вот что странно - та закоментаренная срока тоже абсурдна, но в момент отладки она выдает значение True, если навести мышь на свойство MyTrans.Connected. Однако потом все виснет.

Теперь касательно IТransport: похоже ты Digitman становишься для меня чем то вроде учителя... Я долго рыскал по SocketConnection и надыбал метод .CreateTransport. Этот метод возвращает указатель на IТransport. А уже этот интерфейс позволяет получать и принимать данные с сервера. Однако вся беда в том, что этот метод protected. Его не видно когда пишешь программу.
Встает большущий вопрос - А КАК ПОЛУЧИТЬ ЭТОТ ИНТЕРФЕЙС ?
Этого я к сожалению не понял. Если знаешь - ответь пожалуйста.




 
Romkin ©   (2001-10-25 17:49) [3]

ITransport нужен только если пишешь свой TXXXConnection, в остальных случаях - IAppServer. Нафиг надо?
Все, что нужно, в TSocketConn уже есть, а чтобы что-то транспортировать, то сначала нужно реализовать сервер... или дописать Scktsrvr


 
Digitman ©   (2001-10-26 08:40) [4]

>maxi

<Romkin> верно говорит. Если ты не наследуешь TSocketConnection (или даже TStreamedConnection), то - получи IAppServer, работай с ним, ни о чем не заботясь и не лезь в потроха транспортного уровня



Страницы: 1 вся ветка

Текущий архив: 2002.01.21;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.01 c
1-66245
Snake
2002-01-02 17:21
2002.01.21
Запись графики в поток


14-66351
Mihan
2001-11-26 18:48
2002.01.21
Где достать?.......


4-66390
Asisyay
2001-11-19 18:24
2002.01.21
приоритет


14-66357
Anonym
2001-11-23 12:58
2002.01.21
Проблемы программирования


1-66234
Vovan V
2001-12-31 01:38
2002.01.21
Вывод от программы. СРОЧНО - нужна помощь!