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

Вниз

Вопрос про передачу UDP инди 10.   Найти похожие ветки 

 
vegarulez ©   (2008-03-19 19:35) [0]

Привет всем мастерам!
Вопрос такого характера. Раньше использовал инди 8 и там передавал ответ сообщение UDP сервера на UDP клиент вот таким образом:


procedure TfrmPing.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
 ABinding: TIdSocketHandle);
var
 DataStringStream: TStringStream;
 s:string;
begin
 DataStringStream := TStringStream.Create("");
 try
  DataStringStream.CopyFrom(AData, AData.Size);
  Label2.Caption:=DataStringStream.DataString;
  s :="тест" + Label2.Caption;
  ABinding.SendTo(ABinding.PeerIP, ABinding.PeerPort, s[1], Length(s));
 except on E:Exception do Exit ;
 end;
end;


Сечас поставил инди 10 и при компиляции выдаёт ошибку. Т.к. в 10-ом инди формат параметров sendto стал другим (наводя мышкой показывает, что параметры передаваемые в процедуру должны быть такими):

procedure SendTo(const AIP: string; const APort: Integer; const ABuffer: TBytes; const AIPVersion: TIdIpVersion= Id_IPv4);

Подскажите как быть с передачей буфера - ABuffer.
Не знаю что такое TBytes?  
И как, s -  стринговую, преобразовать TBytes?


 
Сергей М. ©   (2008-03-19 19:40) [1]


> Не знаю что такое TBytes
</>

Возьми да узнай.
Исходники-то открыты, да и прямо перед носом они)


 
vegarulez ©   (2008-03-19 19:43) [2]

TBytes нет в хелпе... (
Деж тада смотреть ? подскажи...


 
Сергей М. ©   (2008-03-19 19:46) [3]


> Деж тада смотреть ? подскажи


В исходных текстах, сказано же ..


 
vegarulez ©   (2008-03-20 06:07) [4]

В исходных текстах чего? Я же привёл исходный текст, который на 8-ом инди успешно работает, там ни слова о Tbytes... не пойму тя...


 
Сергей М. ©   (2008-03-20 08:25) [5]


> В исходных текстах чего?


Инди 10-й версии, чего же еще ?

Сам же сказал - "поставил инди 10"


 
Сергей М. ©   (2008-03-20 08:45) [6]

У меня 10-ка не установлена, но полагаю, что
TBytes = array of Byte


 
vegarulez ©   (2008-03-20 11:25) [7]

у меня D7 там хелп от девятых индейцев... там не то...
при нажатии контролом на sendto в IdSocketHandlе вот такой код отправки

procedure TIdSocketHandle.SendTo(const AIP: string; const APort: Integer; const ABuffer : TIdBytes; const AIPVersion: TIdIPVersion = ID_DEFAULT_IP_VERSION);
begin
 GStack.SendTo(Handle, ABuffer, 0, AIP, APort,AIPVersion);
end;

попробую с Array of Byte.


 
vegarulez ©   (2008-03-21 07:27) [8]

Сечас вообще просто начал с нуля. Кинул на форму тока один UDPServer
и нажал на OnUDPRead - создал процедуру пустую:

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, IdBaseComponent, IdComponent, IdUDPBase, IdUDPServer;

type
 TForm1 = class(TForm)
   IdUDPServer1: TIdUDPServer;
   procedure IdUDPServer1UDPRead(Sender: TObject; AData: TBytes;
     ABinding: TIdSocketHandle);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TBytes;
 ABinding: TIdSocketHandle);
begin
;
end;

end.


И при компиляции пишет: дескать не знаю, что такое TBytes - в самом описании процедуры - в блоке types.

Подскажите как быть?..


 
vegarulez ©   (2008-03-21 07:29) [9]

*в блоке type


 
Сергей М. ©   (2008-03-21 08:17) [10]


> vegarulez


Ну ты исходники-то индейские обшарил или нет ?
Хочешь сказать, что тип TBytes не объявлен ни в одном из евойных юнитов ?

Глубоко в этом сомневаюсь)

Тогда пробуй объявить сам

type

TBytes = array of Byte;


 
korneley ©   (2008-03-21 08:36) [11]

юнит - IdGlobal, а тип, как и говорил Сергей М. TBytes = array of Byte;


 
vegarulez ©   (2008-03-21 09:24) [12]

Сергей М. ©   (20.03.08 08:45) [6], korneley ©   (21.03.08 08:36) [11]
Полностью с вами согласен. У меня просто почему-то Idglobal не добавлялся сам автоматом в Юзес...

Сечас полазил на сайтах индейцев. Скачал пару примерчиков на 10-ых индюках. Вопрос решился. Спасибо.



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

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

Наверх




Память: 0.49 MB
Время: 0.018 c
15-1204380753
Unbekannt
2008-03-01 17:12
2008.04.13
Оборзевшие спамеры


4-1186469502
kotbazilio
2007-08-07 10:51
2008.04.13
Active Desktop


6-1185070182
Андрей Л.
2007-07-22 06:09
2008.04.13
WebBrowser


3-1195455544
oxffff
2007-11-19 09:59
2008.04.13
SQL выражение в ADO вызывает исключение в msvcrt.dll


2-1205589402
webSQLNeederr
2008-03-15 16:56
2008.04.13
как правельно освободить память в TStringList