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

Вниз

Вопрос про передачу 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.007 c
3-1195462325
zdm
2007-11-19 11:52
2008.04.13
Кириллица в данных о пользователе Firebird


4-1186820349
Интересующийся
2007-08-11 12:19
2008.04.13
Ошибка при использовании GetModuleHandle


15-1204035351
avptt
2008-02-26 17:15
2008.04.13
не могу понять


2-1206006900
Aleksandr
2008-03-20 12:55
2008.04.13
ID folder


2-1205839489
alex810
2008-03-18 14:24
2008.04.13
SQL запрос





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