Проблема с Udp-протоколом

Тема в разделе "Delphi - Сети", создана пользователем lazynov, 14 май 2006.

Статус темы:
Закрыта.
  1. lazynov

    lazynov Гость

    Репутация:
    0
    Проблемы с UDP-протоколом. Дело в том, что когда на сервере принимаешь сообщение о приеме данных и пытаешься преобразовать поток в строку, то прога отказывается работать. Если просто делать
    procedure MainForm.ServerOnUDPRead(........);
    begin
    ShowMessage('Somebody connect');
    end;
    и все прекрасно работает!
    В чем причина?
     
  2. Alex Death

    Alex Death Гость

    Репутация:
    0
    Вот как можно сделать для чата:

    Код (Text):
    procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
    ABinding: TIdSocketHandle);
    var
    StrFrmStream: TStringStream;
    Str:string;
    begin
    StrFrmStream:=TStringStream.Create('');
    StrFrmStream.CopyFrom(AData,AData.Size);
    Str:=StrFrmStream.DataString;
    ABinding.SendTo(ABinding.PeerIP,ABinding.PeerPort,str[1],length(str));
    end;
     
  3. aAndy

    aAndy Гость

    Репутация:
    0
    У меня всё прекрасно работает вот таким способом, до боли всем знакомым:

    Код (Text):
    procedure TdmMain.UDPServerUDPRead(Sender: TObject; AData: TStream;
    ABinding: TIdSocketHandle);
    var
    s:string;
    begin
    SetLength(s, AData.Size);
    AData.Position := 0;
    Adata.Read(s[1], Length(s)); // читаю всё что мне нужно, в данном примере
    // понадобилось получить первый символ ака комманда
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей