Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Простейший Udp. server ничего не принимает. (xe2), Событие чтения не вызывается.  
:(
    Опции темы
kestugar
  Дата 15.7.2014, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 3.3.2014

Репутация: нет
Всего: нет



сервер запускается, но событие IdUDPServer1UDPRead не выполняется.
подскажите пожалуйста почему?
Все что в интернете нашел - под delphi 7.
Пытался переделать под xe2 - не получилось. Что нужно сделать, чтобы под xe2 работало?
файрвол выключал - не помогало.

Код

unit UDP;
 
type t_trackpacket = record
    packet_version: shortint;
    port: shortint;
    flags: integer;
    software: array [0..31] of byte;
    version: array [0..15] of byte;
    platform_: array [0..31] of byte;
    server_desc: array [0..63] of byte;
    server_location: array [0..63] of byte;
    server_url: array [0..95] of byte;
    contact_name: array [0..63] of byte;
    contact_email: array [0..63] of byte;
    users: integer;
    channels: integer;
    games: integer;
    uptime: integer;
    total_games: integer;
    total_logins: integer;
end;
 
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    IdUDPClient1: TIdUDPClient;
    IdUDPServer1: TIdUDPServer;
    procedure Button1Click(Sender: TObject);
    //procedure IdUDPServer1AfterBind(Sender: TObject);
    procedure IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
      AData: TArray<System.Byte>; ABinding: TIdSocketHandle);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var t: t_trackpacket;
Buf: TIdBytes;
begin
//  try
//    IdUDPClient1.Active := True;
//    IdUDPClient1.Host := 'localhost';
//    IdUDPClient1.Connect;
//    if IdUDPClient1.Connected  then
//      begin
//        IdUDPClient1.Send(TimeToStr(Time));
//        //Label1.Caption := 'ok';
//      end;
//    IdUDPClient1.Active := False;
//    Beep;Beep;Beep;
//  except
//    MessageDlg('Что-то не получилось =(', mtError, [mbOk], 0);
//  end;
 
  t.flags:= strtoint(edit1.Text);
  //Bytes := RawToBytes((t.flags^, t.size);
  IdUDPClient1.SendBuffer(RawToBytes (t, sizeof(t)));
  //IdUDPClient1.SendBuffer('localhost', 800, RawToBytes (t, sizeof(t)));
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  IdUDPServer1.Active := True;
end;
 
procedure TForm1.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
      AData: TArray<System.Byte>; ABinding: TIdSocketHandle);
var packet: t_trackpacket;
  i:Integer;
  s:String;
begin
  s := '';
    //s := BytesToString(AData, TEncoding.UTF8);
    i := 0;
    while (AData[i] <> 0) do
      begin
      s := s + chr(AData[i]);
      i := i + 1;
      end;
  //Adata.Read(packet, SIZEOF(packet));
  //Adata.ReadBuffer(packet, SIZEOF(packet));
 
  edit2.Text:= s;
  //edit2.Text:= inttostr(packet.flags)
end;

PM MAIL   Вверх
kami
Дата 15.7.2014, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 6
Всего: 72



Цитата(kestugar @  15.7.2014,  10:11 Найти цитируемый пост)
сервер запускается, но событие IdUDPServer1UDPRead не выполняется.

Причина может быть совсем не в коде.
Запустите TCPView и посмотрите - есть ли UDP сокет на нужном порту у запускаемого приложения

Добавлено через 7 минут и 22 секунды
Цитата(kestugar @  15.7.2014,  10:11 Найти цитируемый пост)
файрвол выключал - не помогало.

Стандартный файрволл - интересная штука. Не раз натыкался, что при выключенном файрволле приложение из "черного списка" не хотело работать по сети smile.
PM MAIL WWW   Вверх
kestugar
Дата 16.7.2014, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 3.3.2014

Репутация: нет
Всего: нет



Программа отображается в TCPView, пакеты тоже)
Что из этого еще следует?

Это сообщение отредактировал(а) kestugar - 16.7.2014, 09:08

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  TCPView_udp_server.png 69,91 Kb
PM MAIL   Вверх
kami
Дата 16.7.2014, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 6
Всего: 72



Цитата(kestugar @  16.7.2014,  09:08 Найти цитируемый пост)
Что из этого еще следует?

Пока - ничего.
UDPServer-у выставлен порт 52264 ?

Это сообщение отредактировал(а) kami - 16.7.2014, 17:07
PM MAIL WWW   Вверх
kestugar
Дата 17.7.2014, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 3.3.2014

Репутация: нет
Всего: нет



Цитата(kami @ 16.7.2014,  17:07)

UDPServer-у выставлен порт 52264 ?

Да, выставлен.
PM MAIL   Вверх
kestugar
Дата 17.7.2014, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 3.3.2014

Репутация: нет
Всего: нет



Забыл прикрутить функцию Create к форме =\ 
Извиняюсь, что из-за такой фигни время отнял, самому обидно =\\\
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0515 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.