Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > IdUDPServer


Автор: Keough 31.1.2008, 12:48
В принципе нашел ответ на свою проблему здесь http://forum.vingrad.ru/topic-49495.html, но так и не понял, как подключить файл, который указан в последнем сообщении. Объясните пожалуйста.  smile 

Пытаюсь реализовать чат в сетевых шашках.
Код примерно следующий (пока только чат): 

Код

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Button1: TButton;
    GroupBox2: TGroupBox;
    Edit2: TEdit;
    Button2: TButton;
    Memo1: TMemo;
    Label3: TLabel;
    IdUDPClient1: TIdUDPClient;
    IdUDPServer1: TIdUDPServer;
    procedure Button2Click(Sender: TObject);
    procedure IdUDPServer1UDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}



procedure TForm1.Button2Click(Sender: TObject);
begin
 IdUDPClient1.Send(Edit2.Text);
end;

procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
  ABinding: TIdSocketHandle);
var
  StringFormatedStream: TStringStream;
  s: String;
begin
//Initialization
  StringFormatedStream := TStringStream.Create('');
//Копируем из простого потока в строковый
  StringFormatedStream.CopyFrom(AData, AData.Size);
//Выводим полученное сообщение
Memo1.Lines.Add(ABinding.PeerIP+' '+StringFormatedStream.DataString);
//Перенаправление сообщения дальше
  ABinding.SendTo(ABinding.PeerIP, Abinding.PeerPort, s[1], Length(s));
//Освобождаем строковый поток.
  StringFormatedStream.Free;
end;

end.


А ошибки выдает следующие:

Код

[Error] Unit1.pas(27): Undeclared identifier: 'TIdSocketHandle'
[Error] Unit1.pas(60): ')' expected but identifier 'PeerIP' found
[Error] Unit1.pas(60): 'END' expected but ')' found
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

Автор: Sanchezzz 31.1.2008, 19:53
ты какую версию indy используешь 9 или 10 этот пример на 9 версию.
в uses добавь IdSocketHandle

Автор: Keough 31.1.2008, 21:22
Спасибо, разобрался. Только вот теперь возникла проблема с другим - не могу реализовать сетевую игру. просто после вторых суток за ними мозг не соображает. Прикрепляю архив с материалами, может кто-нибудь поможет мне? Очень расчитываю!  smile 
З.Ы.: Indy использую 9-ю, по умолчанию встроенную в 7-ю Дельфю.

Автор: Sanchezzz 31.1.2008, 21:33
это такой геморройный пример что все переписывать тебе нужно проще на конструкторе игр сделать быстрей будет в раза 3 и красивей.

Автор: Keough 31.1.2008, 21:45
А де взять его? 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)