我的『网聊NetChat』是基于局域网的聊天、传送文件的类QQ的工具,也有聊天室,
支持皮肤更换,支持QQ头像等等,用的就是UDP协议(QQ也是),也可以发广播包
(注:只能在局域网中发广播,你可以想象一下,如果在Internet上也可以发广播包的话
那会是一种什么样的效果?哈...),你可以到我的主页(http://ph11.126.com)上去下载。
获得每个IP的广播地址代码如下(我很早就已放在主页上的编程技巧中了):
13、设置广播IP地址(改自教父的NetICQ程序代码,有人说广播地址不是这样算的,但经我实
验好象还可以,如有更好的方法请告诉我:wind2000@21cn.com)
输入一个IP地址,得到该IP地址所在网段的广播IP地址
function TMainForm.SetGBIp(sIPAddr : string):string;
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 = '.' 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;