收听UDP广播(100分)

  • 主题发起人 主题发起人 luxindelphi
  • 开始时间 开始时间
L

luxindelphi

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样接收局域网中的UDP广播数据?
 
端口一样即可接收。
 
我不知道怎么实现,能否给个例子
 
是不是必须知道发送广播的地址?
 
只要往 子网掩码 发送就是广播了
 
我是要接收数据。能否给个例子?
 
根据TCP/IP协议,如果你的子网掩码为255.255.255.0
那么它的广播地址是:192.168.0.255你向这个地址发送消息就可以了,
然后这个网段上的机器都会收到的。
根据子网掩码不同,你的广播地址也就不一样。
 
接收数据时,是不是也接收192。168。0。255的数据就可以了?
 
比如用NMUDP,你必须设置好它的LocalPort属性,使它和广播数据的端口一样。

procedure TForm1.NMUDP1DataReceived(Sender: TComponent; NumberBytes: Integer; FromIP: String; Port: Integer);
var
C: array [1..3] of Char;
I: Integer;
begin
if NumberBytes <= 3 then
begin
NMUDP1.ReadBuffer(C, I);
Memo1.Lines.Add(C+': received '+IntToStr(I)+' bytes from '+FromIP+' on port '+IntToStr(Port));
end
else
Memo1.Lines.Add(IntToStr(I)+' bytes incoming, buffer too small');
end;

 
你要知道UDP协议的原理,
它就是在这个网段上向1~254上发送消息
 
给我你的EMAIL,我发个例子给你
 
smart.lu@163.com,多谢!!!
 
“向1~254上发送消息”这个说法不妥,广播只需发送一次,本子网内的所有机器都能收到。
 
to nibul:
收不到你的邮件呀,老兄你发了没有。
 
其它兄弟也别闲着,我看到答案立马给分。在线等,拜托!
 
各位,我已经知道怎么做了,虽然没有给我具体说明,但大家还是给了我提示,
感谢!!!!分数我给NIBUL和ZQ84611。
 
多人接受答案了。
 
后退
顶部