在VB中可以用WINSOCK1。ROMOHOST:=255。25。255。255,
在DELPHI中这样用出错,请问如何向局哉网中所有的人发个消息,我用的是NMUDP控件,
如何发广播地址?
在线等!
在DELPHI中这样用出错,请问如何向局哉网中所有的人发个消息,我用的是NMUDP控件,
如何发广播地址?
在线等!
解决方案 »
- GetTickCount的问题?
- 问两个可能很愚蠢的问题,期望大家关注
- 联入数据库 程序运行错误 找原因
- 把dbnavigator控件中的按钮竖着排!
- qry.Filter 问题
- mediaplayer播放mid不稳定、变调
- 无法定位程序输入点?_LockSpain@CReaderWriterLock3@@AAEX_N@Z于动态链接库MSDART.DLL上?????????WHY?
- 这个效果怎做,根是几个部门,根下是某一部门的人员名,点人员名,在grid中显示相应的
- 留言有分!
- 请问SkinForm控件怎么用????
- 急!delphi怎样处理数据库输入重复数据问题?
- 在WISE 9.01中如何设置BDE和ODBC?
另外注意你的子网掩码,我不知道你要给那个网段发消息。
所以用NMUDP发消,只要将nmudp的地址写成广播地址就可以啦
email [email protected]
begin
udp.ROMOHOST:= IntTostr(i)+ '.255.255.255';
udp.SenfBuf('');
end;
Function Trun_ip(S:string):string;
var s1,s2,s3,ss,sss,Head:string;
n,m:integer;
begin
//s:=192.168.0.23
sss:=S;
n:=pos('.',s);
s1:=copy(s,1,n);//192.
m:=length(s1);
delete(s,1,m);Head:=copy(s1,1,(length(s1)-1));n:=pos('.',s);
s2:=copy(s,1,n);//168.
m:=length(s2);
delete(s,1,m);n:=pos('.',s);
s3:=copy(s,1,n);//0.
m:=length(s3);
delete(s,1,m);ss:=sss;//127.XXX.XXX.XXX
if strtoint(Head) in [1..126] then ss:=s1+'255.255.255'; //1~126.255.255.255 (A类网)
if strtoint(Head) in [128..191] then ss:=s1+s2+'255.255';//128~191.XXX.255.255(B类网)
if strtoint(Head) in [192..254] then ss:=s1+s2+s3+'255'; //192~254.XXX.XXX.255(C类网)Result:=ss; ////192.168.0.255end;
使用这个函数时只要把一个有效的IP地址送进去,就会返回该IP地址的广播地址。如Trun_ip(192.168.0.45)就会返回192.168.0.255.
直接广播就行了
Trun_ip(192.168.0.3)提示错误信息:
undeclare indetifile trun_ip,如能解决高分相送!!
IdUDPClient1.Broadcast('message',8888);
就可以发广播啊,很简单啊
var
i, j, iHead : Integer;
sHead, s : string;
ai : array[1..3] of integer;
begin
{ 1~126.255.255.255 (A类网广播地址)
128~191.XXX.255.255 (B类网广播地址)
192~254.XXX.XXX.255 (C类网广播地址)}
j := 1;
for i := 0 to Length(sIPAddr) do
begin
if sIPAddr[i] = '.' then
begin
ai[j] := i;
Inc(j);
end;
if j > 3 then break;
end;
sHead := Copy(sIPAddr, 1, ai[1] - 1);
iHead := StrToInt(sHead);
if iHead < 128 then //A类网
begin
Result := sHead + '.255.255.255';
end
else
begin
if iHead < 192 then //B类网
begin
s := Copy(sIPAddr, 1, ai[2] - 1);
Result := s + '.255.255';
end
else //C类网
begin
s := Copy(sIPAddr, 1, ai[3] - 1);
Result := s + '.255';
end;
end;
end;
Function Trun_ip(S:string):string;
s是字符串
实在对不起!