数据广播的问题(100分)

  • 主题发起人 主题发起人 CJ
  • 开始时间 开始时间
C

CJ

Unregistered / Unconfirmed
GUEST, unregistred user!
就我所知,255.255.255.255 应该是广播地址,可是我在TUDP中设置后
返回异常(如果为200.100.100.255,即本地广播没问题)不知道为什么

SOCKET如何使用广播?需要例子
 
没错,255.255.255.255 是广播地址,但200.100.100.255不应该是广播地址,
按规定广播地址只有一个,现在有一多播地址(multicast):224.0.0.0--239.255.255.255。我没有用过Delphi中的TUDP,但我想用户数据报协议应该是相同的。下面是SOCKET广播的例子:
GroupSocket=socket(AF_INET,SOCK_DGRAM,0);//创建
bind(GroupSocket,(LPSOCKADDR)&sin,sizeof(sin));//绑定本地地址
setsockopt(GroupSocket, SOL_SOCKET, SO_BROADCAST,(char*)&flag, sizeof(BOOL));//设置广播模式
 
广播地址是相对子网络地址而言的。
如你的子网络地址是 200。100。100。X,则广播地址是
200。100。100。255。
如你的子网络地址是 200。100。X。X,则广播地址是
200。100。255。255。
即广播地址是子网络地址所有的位均为1的IP地址。
 
这个应该就是子网掩码吧?
好象凡是255的位置将会被禁止的。
 
我也想知道如何对视频进行多路广播!然后用户如何切换各个广播路.
 
我的IP:200.100.100.0 SUBNETMASK:255.255.255.0
广播地址当然是:200.100.100.255
如果连这也不知道,网盲真是盲到家了
我只想知道为什么TUDP不能用 255.255.255.255!!
TSOCKET(VCL)如何使用广播地址

TO DOUBLE-P-PIG:视频应该不能这样广播吧,那网络流量不超大?
我想只能让客户连接视频提供的服务器,发送必要信息,由服务器验证身份
定向发出视频信息吧
 
我知道pppig的意思,他想用MultiCast Switcher,如果没有客户连接在交换机
上,交换机可以自动断掉这一路的广播。所以流量不是问题。
 
没有摸清情况,随便乱说,让大家见笑了。
好象Delphi4在广播问题上有问题,如果你没有装Delphi4的 Patch的话,
装一下,重新试一试,也许会一切OK
 
我用255.255.255.255没问题的.但我是在BCB3上用的ICS的控件,
不是Borland的控件.那些NM*控件我用过一次,太烂了,还要钱!
(Borland给您的是没有source的!).其质量还不如免费的ICS的.
 
那些NM*控件在D4中不用了
我的程序已经基本完成,如果换ICS可能要改许多东西
D4 PATCH 52M+UPDATE*3起码要一个月才下的来
 
那就比较难办了 :(

建议您用BoundsChecker或MemProof监视一下API调用,看
Winsock调用中哪一步发生了错误,也许可以发现问题.
 
delphi4 关于NMUDP例子UDPDEMO可以广播,不知
各位发现什么问题?
 
蓝鸟兄:我的D4好象用TUDP不是什么NMUDP,那好象是D3的东东,而且是OCX,
实在麻烦,而且我的程序已经完成,就差这一个问题了。
而且,我要的不是普通的广播,是 255.255.255.255 广播,也就是
本地网段的广播。NMUDP是否可以完成?
 
在程序运行过程中启动控制面板的各个设置功能:

var x:cardinal;

begin

{启动控制面板}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL',9);

{辅助选项 属性-键盘}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL access.cpl,,1',9);

{辅助选项 属性-声音}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL access.cpl,,2',9);

{辅助选项 属性-显示}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL access.cpl,,3',9);

{辅助选项 属性-鼠标}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL access.cpl,,4',9);

{辅助选项 属性-常规}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL access.cpl,,5',9);

{添加/删除程序 属性-安装/卸载}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Appwiz.cpl,,1',9);

{添加/删除程序 属性-Windows安装程序}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Appwiz.cpl,,2',9);

{添加/删除程序 属性-启动盘}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Appwiz.cpl,,3',9);

{显示 属性-背景}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0',9);

{显示 属性-屏幕保护程序}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,1',9);

{显示 属性-外观}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,2',9);

{显示 属性-设置}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,3',9);

{Internet 属性-常规}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Inetcpl.cpl,,0',9);

{Internet 属性-安全}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Inetcpl.cpl,,1',9);

{Internet 属性-内容}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Inetcpl.cpl,,2',9);

{Internet 属性-连接}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Inetcpl.cpl,,3',9);

{Internet 属性-程序}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Inetcpl.cpl,,4',9);

{Internet 属性-高级}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Inetcpl.cpl,,5',9);

{区域设置 属性-区域设置}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Intl.cpl,,0',9);

{区域设置 属性-数字}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Intl.cpl,,1',9);

{区域设置 属性-货币}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Intl.cpl,,2',9);

{区域设置 属性-时间}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Intl.cpl,,3',9);

{区域设置 属性-日期}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Intl.cpl,,4',9);

{游戏控制器-一般}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Joy.cpl,,0',9);

{游戏控制器-高级}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Joy.cpl,,1',9);

{鼠标 属性}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Main.cpl',9);

{多媒体 属性-音频}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Mmsys.cpl,,0',9);

{多媒体 属性-视频}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Mmsys.cpl,,1',9);

{多媒体 属性-MIDI}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Mmsys.cpl,,2',9);

{多媒体 属性-CD音乐}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Mmsys.cpl,,3',9);

{多媒体 属性-设备}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Mmsys.cpl,,4',9);

{调制解调器 属性}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Modem.cpl',9);

{网络}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Netcpl.cpl',9);

{密码 属性}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Password.cpl',9);

{扫描仪与数字相机 属性}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Sticpl.cpl',9);

{系统 属性-常规}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Sysdm.cpl,,0',9);

{系统 属性-设备管理器}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Sysdm.cpl,,1',9);

{系统 属性-硬件配置文件}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Sysdm.cpl,,2',9);

{系统 属性-性能}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Sysdm.cpl,,3',9);

{日期/时间 属性}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL timedate.cpl',9);

{电源管理 属性}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Powercfg.cpl',9);

{拨号属性}

x:=winexec('rundll32.exe shell32.dll,Control_RunDLL Telephon.cpl',9);

{----------------------调用错误----------------------}

if x=0 then messagebox(0,'程序超出内存','错误',0);

if x=ERROR_BAD_FORMAT then messagebox(0,'该程序非一个合法的Win32.EXE程序).','错误',0);

if x=ERROR_FILE_NOT_FOUND then messagebox(0,'指定文件没找到','错误',0);

if x=ERROR_PATH_NOT_FOUND then messagebox(0,'指定路径没找到','错误',0);

end;
 
CJ怎么发到这里来了?
 
sorry
看来问题没指望了:-(
 
后退
顶部