Конференция "Сети" » Помогите с UdpSocket
 
  • west19 (03.10.13 17:50) [0]
    почему не работает,хотя компелируется,но не отправляет

    unit Unit1;

    interface

    uses
     Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
     Dialogs, StdCtrls, Buttons, IdBaseComponent, IdComponent, IdUDPBase,
     IdUDPServer, IdSocketHandle, Sockets;
     {Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
     Dialogs, StdCtrls, Sockets;}

    type
     TForm1 = class(TForm)
       Edit1: TEdit;
       Edit2: TEdit;
       Edit3: TEdit;
       Button1: TButton;
       Label1: TLabel;
       Label2: TLabel;
       Label3: TLabel;
       Edit4: TEdit;
       Edit5: TEdit;
       Edit6: TEdit;
       Label4: TLabel;
       UdpSocket1: TUdpSocket;
       Button2: TButton;
       Memo1: TMemo;
       Button3: TButton;
       procedure Button1Click(Sender: TObject);
       procedure Button2Click(Sender: TObject);
       procedure UDPServerUDPRead(AThread: TIdUDPListenerThread;
      ABinding: TIdSocketHandle);
       procedure UdpSocket1Receive(Sender: TObject; Buf: PAnsiChar;
         var DataLen: Integer);
       procedure UdpSocket1Connect(Sender: TObject);
       procedure UdpSocket1Error(Sender: TObject; SocketError: Integer);
       procedure UdpSocket1Send(Sender: TObject; Buf: PAnsiChar;
         var DataLen: Integer);

     private
       { Private declarations }
     public
       { Public declarations }

     end;

    var
     Form1: TForm1;

    implementation

    {$R *.dfm}

    procedure TForm1.Button1Click(Sender: TObject);
    var
    ByteW : array [0..4] of Byte;

    begin

     application.ProcessMessages;
       WaitForSingleObject(Handle, 10);

    ByteW[0]:=255;
    ByteW[1]:=255;
    ByteW[2]:=240;
    UdpSocket1.SendBuf(ByteW,sizeof(ByteW)) ;

    end;

    procedure TForm1.Button2Click(Sender: TObject);
    begin
    UdpSocket1.LocalHost:='192.168.0.99';
    UdpSocket1.LocalPort:='5826';
    UdpSocket1.RemoteHost:='192.168.0.99';
    UdpSocket1.RemotePort:='5826';

    UdpSocket1.Open;
    UdpSocket1.Connect;

    end;

    procedure TForm1.UDPServerUDPRead(AThread: TIdUDPListenerThread;
      ABinding: TIdSocketHandle);
    var ByteW    :array[0..4] of byte;
    begin
    UdpSocket1.ReceiveBuf(ByteW,sizeof(ByteW));
    Memo1.Lines.Add(inttostr(ByteW[0]));
    Memo1.Lines.Add(inttostr(ByteW[1]));
    Memo1.Lines.Add(inttostr(ByteW[2]));

    end;

    procedure TForm1.UdpSocket1Receive(Sender: TObject; Buf: PAnsiChar;
     var DataLen: Integer);

    begin
      Memo1.Lines.Add(UdpSocket1.Receiveln());
    {Memo1.Lines.Add(inttostr(Buf[0]));
    Memo1.Lines.Add(inttostr(Buf[1]));
    Memo1.Lines.Add(inttostr(Buf[2]));   }
    end;

    procedure TForm1.UdpSocket1Connect(Sender: TObject);
    begin
     Memo1.Lines.Add('connect');
    end;

    procedure TForm1.UdpSocket1Error(Sender: TObject; SocketError: Integer);
    begin
    Memo1.Lines.Add('error');
    end;

    procedure TForm1.UdpSocket1Send(Sender: TObject; Buf: PAnsiChar;
     var DataLen: Integer);
    begin
    Memo1.Lines.Add('send');
    end;

    end.
  • RWolf © (03.10.13 17:56) [1]
    Какой компонент принимает пакеты? непохоже, что обработчик UDPServerUDPRead к чему-то привязан.
  • west19 (07.10.13 09:27) [2]
    Да, обработчик UDPServerUDPRead остался со старого кода ещё.Не знаю какой принемает , вот поэтому написал,первый раз с этим работаю,не знаю что к чему,может подскажешь,обьяснишь чего е хватает,и как мне правильно сделать
  • RWolf © (07.10.13 10:24) [3]
  • west19 (07.10.13 10:37) [4]
    Задача состоит чтобы передать 3 разных числа по udp протоколу другому копьютеру,а затем вывести  в эту же прогу то что передалось
  • west19 (07.10.13 14:27) [5]
    вот это  я пробывал сделать в коде
  • west19 (07.10.13 14:27) [6]
    вот это  я пробывал сделать в коде
 
Конференция "Сети" » Помогите с UdpSocket
Есть новые Нет новых   [118608   +46][b:0][p:0]