Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2011.02.06;
Скачать: [xml.tar.bz2];

Вниз

IdMappedPortUDP: считать месагу вручную =)   Найти похожие ветки 

 
n00b T_T   (2009-02-05 13:18) [0]

Здравствуйте господа програмёры.... возникла следующая проблема:
неообходимо вручную считать любую пришедшую месагу...

общий вид проги:


...
var  
udp:IdMappedPortUDP.TIdMappedPortUDP;
Msg: TMsg;
WhEvent:THandle;

begin
udp:=  TIdMappedPortUDP.create(nil);
udp.Active :=false;
udp.BroadcastEnabled := false;
udp.BufferSize :=8192   ;
udp.DefaultPort := <port>;
udp.ThreadedEvent := false;
udp.ReceiveTimeout:=1;
WhEvent:=CreateEvent(nil,true,false,"et");
while must_dead=false do
 begin
  <ТЕЛО ПРОГИ>+
  translatemessage(msg);
  waitforsingleobject(WhEvent,10);
  dispatchmessage(msg);
 end;
end.

Как видите используем INDY компонент), он нормально создаётся...
но из за нехватки опыта хрен знает как проводить чтение =(
если кто-либо сталкивался с данной проблемой, или знает что нужно сделать, дайте пожалусто намёк)


 
Сергей М. ©   (2009-02-05 13:53) [1]

Для этого предусмотрены методы
ReceiveBuffer()
ReceiveString()


 
n00b T_T   (2009-02-06 23:34) [2]

поместил в <ТЕЛО ПРОГИ> следующий фрагмент:
udp.ReceiveBuffer(Adata,udp.BufferSize   );
......
фаталит уже при использовании например showmessage(inttostr(Adata.Size));
или вообще при любом обращении к Adate.

var
...
Adata :TStream;


 
Сергей М. ©   (2009-02-06 23:55) [3]


> фаталит уже..при любом обращении к Adate


Вот и разберись для начала, почему у тебя "фаталит" что-то, не имеющее вообще никакого отношения к Инди)


 
n00b T_T   (2009-02-07 00:34) [4]

так дапустим даже если Adata будет string, 1 фиг потом при любом обращении к ней фатал...
чёто я както криворуко закриатил TIdMappedPortUDP.... скорее всего)))


 
Сергей М. ©   (2009-02-07 00:40) [5]


> даже если Adata будет string .. при любом обращении
> к ней фатал


Да не трынди уже)

Так уж и при любом уж ?)

Кстати, а что это за зверь такой  - "фатал" ?


 
n00b T_T   (2009-02-07 01:34) [6]

Exception EAcessViolation in module  и т.д. и т.п.

да и при любом.... хоть при использовании например length(Adata), еси адата -стринг


 
Сергей М. ©   (2009-02-07 18:04) [7]


> EAcessViolation


Это не "фатал".
"Фатал" - это когда непоправимая беда приключилась)


> хоть при использовании например length(Adata), еси адата
> -стринг


Вот тебе пример "любого" использования:

procedure AnyUsageOfString;
var
 Adata: String;
begin
 ShowMessage(Length(Adata));
end;


"Ноль" вижу, "фатал" не вижу.
Чтоя делаю не так ?)


 
Сергей М. ©   (2009-02-07 18:47) [8]

Вот декларация метода:

function ReceiveBuffer(var ABuffer; const ABufferSize: Integer

Где ты здесь увидел стрим или стринг ?


 
n00b T_T   (2009-02-08 22:10) [9]

А чего туда надо?))))
какой тип лучше употребить в качестве Abuffer-а ?


 
Сергей М. ©   (2009-02-09 08:26) [10]

Если string, то
PChar(MyStringVariable)^

Если стрим, то

MyMemoryStreamVariable.Memory^


 
n00b T_T   (2009-02-11 15:19) [11]

большое спс =)))



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

Форум: "Сети";
Текущий архив: 2011.02.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
2-1290080637
noob_one
2010-11-18 14:43
2011.02.06
Как добавить свою строчку в меню, которое появляется по


2-1290114890
Василий3
2010-11-19 00:14
2011.02.06
веб браузер с проксей


11-1229287775
DenisArd
2008-12-14 23:49
2011.02.06
Как загрузить иконку нужного формата?


2-1290091924
NewZ
2010-11-18 17:52
2011.02.06
Компонент TScrollBox.


3-1252323554
Grant
2009-09-07 15:39
2011.02.06
FireBird embedded+FIBPlus и текстовые файлы





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский