Hello Jack,

Do you send to a broadcast address or to a specific address ?
Do you have 1 or 2 IP addresses in the sending machine ?

---
Rgds, Wilfried [TeamICS]
http://www.overbyte.be/eng/overbyte/teamics.html
http://www.mestdagh.biz

Wednesday, May 3, 2006, 00:52, Jack wrote:

> I have the code to listen on a UDP port when the first button
> is clicked, and send a packet when the second button is clicked.
> It works fine except when the second button is clicked, it sends
> two packets (I captured that with Ethereal.) Is there anything
> I'm not doing right?

> -- 
> Best regards,
> Jack


> unit Unit1;

> interface

> uses
>   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
>   Dialogs, StdCtrls, WinSock, WSocket;

> type
>   TForm1 = class(TForm)
>     WSocket1: TWSocket;
>     Memo1: TMemo;
>     Label1: TLabel;
>     Label2: TLabel;
>     btnSend: TButton;
>     edtDstIP: TEdit;
>     edtSvrPort: TEdit;
>     btnListen: TButton;
>     edtPort: TEdit;
>     procedure WSocket1DataAvailable(Sender: TObject; ErrCode: Word);
>     procedure btnSendClick(Sender: TObject);
>     procedure btnListenClick(Sender: TObject);
>   private
>     { Private declarations }
>   public
>     { Public declarations }
>   end;

> var
>   Form1: TForm1;

> implementation

> {$R *.dfm}

> procedure TForm1.btnListenClick(Sender: TObject);
> begin
>   WSocket1.Proto := 'udp';
>   WSocket1.Port := edtSvrPort.Text;
>   WSocket1.Addr := '0.0.0.0';
>   WSocket1.Listen;
>   btnListen.Enabled := False;
> end;

> procedure TForm1.btnSendClick(Sender: TObject);
> var Src: TSockAddrIn; SrcLen: Integer;
> begin
>   Src.sin_family := AF_INET;
>   Src.sin_addr.S_addr := inet_addr(PChar(edtDstIp.Text));
>   Src.sin_port := hToNs(StrToInt(edtPort.Text));
>   SrcLen := SizeOf(Src);
>   WSocket1.SendTo(Src, SrcLen, PChar('Hello'), 5);
> end;

> procedure TForm1.WSocket1DataAvailable(Sender: TObject; ErrCode: Word);
> begin
>   if ErrCode = 0 then Memo1.Lines.Add(WSocket1.ReceiveStr)
>   else Memo1.Lines.Add('WSocket1DataAvailable() error = ' + 
> IntToStr(ErrCode));
> end;

> end.



-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to