socket IdUDPServer1如何发送UDP广播报255.255.255.255 IdUDPServer1.Broadcast(arr, port,''); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Broadcast IdUDPServer1.Broadcast('255.255.255.255',9999); 用这个我无法发送具体数据出去啊 ,那边的设备 将 SendStruct 整个结构 广播发出IdUDPServer1.SendBuffer('192.168.0.255',9999,Buffer,Sizeof(SendStruct)); 这个还不可以. self.IdUDPServer1.Broadcast('hello world','');orself.IdUDPServer1.Broadcast('hello world','255.255.255.255');orself.IdUDPServer1.Broadcast('hello world','192.168.0.255'); procedure TIdUDPBase.Broadcast(const AData: string; const APort: TIdPort; const AIP: String = ''; AByteEncoding: IIdTextEncoding = nil {$IFDEF STRING_IS_ANSI}; ASrcEncoding: IIdTextEncoding = nil{$ENDIF});看函数原形,第一个参数是要发送的数据 IdUDPServer1.Broadcast 这个只能发字符串出去 我怎么样才能把我的结构体数据发出去.我的结构体是type SendStruct =packed record Cmd: byte; // 命令码 */ TSASID: array[0..11] of byte; // TSAS唯一ID */ Word CfgPCMAC: array[0..5] of byte; // 配置PC的MAC地址 IPAddr: array[0..3] of byte; // TSAS的IP地址 GWIP: array[0..3] of byte; ///* 网关IP地址 */ Mask: array[0..3] of byte; ///* 子网掩码 */ MAC: array[0..5] of byte; // /* TSAS的MAC地址 */ SerPort: Word; // /* 服务器的端口 */ SerIPAddr: array[0..3] of byte; // /* 服务器的IP地址 */ SerDomainName: array[0..99] of byte; // /* 服务器的域名 */ BakSerPort: Word; // /* 备用服务器的端口 */ BakSerIPAddr: array[0..3] of byte; // /* 备用服务器的IP地址 */ BakSerDomainName: array[0..99] of byte; // /* 备用服务器的域名 */ DNSIPAddr: array[0..3] of byte; // /* DNS服务器的IP地址 */ DNSEnable: byte; // /* DNS使能 */ end; procedure TIdUDPBase.Broadcast(const AData: TIdBytes; const APort: TIdPort; const AIP: String = '');还有个发送TIdBytes的广播函数,可以满足你的需求 procedure TForm27.FormCreate(Sender: TObject);var sdata: SendStruct; sbyte: TIdBytes;begin sbyte := RawToBytes(sdata, SizeOf(sdata)); self.IdUDPServer1.Broadcast(sbyte, 1212);end;这样转换应该可以了 谢谢 ksrsoft procedure TIdUDPBase.Broadcast(const AData: TIdBytes; const APort: TIdPort; const AIP: String = '');这个 我怎么没有呢,我用的是delphi7, C#代码转成delphi的 delphi函数的一个问题 关于那一个StringGrid1使用 ping命令有没有对应的API? 有获得从公元元年到现在时间秒数的函数吗? 在调用datetime函数取系统当前时间,如何把其年、月、日分割开来? 什么是Delphi? 关于vcl的问题,我是初学者。 遇到一个相当奇怪的问题,请各位高手帮帮忙! 有关控制外部程序窗口的问题,请教诸位? 求问这句代码什么意思 关于Delphi 根据URL获取该网址title(也即是标题)的问题~~~
IdUDPServer1.Broadcast('255.255.255.255',9999); 用这个我无法发送具体数据出去啊 ,那边的设备 将 SendStruct 整个结构 广播发出
IdUDPServer1.SendBuffer('192.168.0.255',9999,Buffer,Sizeof(SendStruct)); 这个还不可以.
or
self.IdUDPServer1.Broadcast('hello world','255.255.255.255');
or
self.IdUDPServer1.Broadcast('hello world','192.168.0.255');
const AIP: String = ''; AByteEncoding: IIdTextEncoding = nil
{$IFDEF STRING_IS_ANSI}; ASrcEncoding: IIdTextEncoding = nil{$ENDIF});看函数原形,第一个参数是要发送的数据
我的结构体是type
SendStruct =packed record
Cmd: byte; // 命令码 */
TSASID: array[0..11] of byte; // TSAS唯一ID */ Word
CfgPCMAC: array[0..5] of byte; // 配置PC的MAC地址
IPAddr: array[0..3] of byte; // TSAS的IP地址
GWIP: array[0..3] of byte; ///* 网关IP地址 */
Mask: array[0..3] of byte; ///* 子网掩码 */
MAC: array[0..5] of byte; // /* TSAS的MAC地址 */
SerPort: Word; // /* 服务器的端口 */
SerIPAddr: array[0..3] of byte; // /* 服务器的IP地址 */
SerDomainName: array[0..99] of byte; // /* 服务器的域名 */ BakSerPort: Word; // /* 备用服务器的端口 */
BakSerIPAddr: array[0..3] of byte; // /* 备用服务器的IP地址 */
BakSerDomainName: array[0..99] of byte; // /* 备用服务器的域名 */ DNSIPAddr: array[0..3] of byte; // /* DNS服务器的IP地址 */
DNSEnable: byte; // /* DNS使能 */
end;
const AIP: String = '');还有个发送TIdBytes的广播函数,可以满足你的需求
var
sdata: SendStruct;
sbyte: TIdBytes;
begin
sbyte := RawToBytes(sdata, SizeOf(sdata));
self.IdUDPServer1.Broadcast(sbyte, 1212);
end;这样转换应该可以了
谢谢 ksrsoft procedure TIdUDPBase.Broadcast(const AData: TIdBytes; const APort: TIdPort;
const AIP: String = '');这个 我怎么没有呢,我用的是delphi7,