Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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.55 MB
Время: 0.017 c
1-66266
!Новичоккккк
2002-01-03 22:23
2002.01.21
ПОМОГИТЕ!


1-66233
Анатолий
2002-01-01 03:52
2002.01.21
Сhart


14-66338
Христос
2001-11-24 14:42
2002.01.21
WinApi


3-66215
Laimer
2001-12-18 11:42
2002.01.21
TTable


1-66275
well
2002-01-04 11:07
2002.01.21
TreeViev





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский