Форум: "Сети";
Текущий архив: 2002.01.21;
Скачать: [xml.tar.bz2];
ВнизПо поводу 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c