如何只用TIdUDPServer实现数据的发送和接受,
假如目标IP/Port是192.168.3.251:4001(是一台设备,),
本地IP/Port是192.168.3.37:4002(当前电脑),
怎样可以发送、接收命令都用TIdUDPServer完成,
假如目标IP/Port是192.168.3.251:4001(是一台设备,),
本地IP/Port是192.168.3.37:4002(当前电脑),
怎样可以发送、接收命令都用TIdUDPServer完成,
解决方案 »
- QuickReport使用普通打印机没问题,使用专用打票打印机出错,程序都运行不起来,请问怎么解决~
- access数据库对2个表操作,如何保证操作成功?
- 现在做两层的东西,请问怎样用adoconnection怎样连接网络里其他电脑的MS SQL,可以用这东西连接的吗,请问如果可以
- 谁知道在dbgrideh中直接点击title就可按点击的那个字段排序的方法?不盛感激!
- 高分求救——动态创建的控件free问题
- 想培训SQL Server,北京科海怎么样?
- 控制dbgrid的焦点,在新增、修改时禁止鼠标跳转到另外的记录上?
- 报表调用函数
- 怎么和sql连接呀?
- 各位大侠:救命!!!动态生成控件的问题
- access文件拷贝、删除问题: 无法删除?
- 紧急问题(在线等)
//UDPServer : TIdUDPServer;
var
sBuf: AnsiString;
begin
sBuf := '40 40 40 40 01 fb 05 00 00 00 00 21 00 01 00 00 23';
UDPServer.SendBuffer(Trim(EdtDesIP.Text),StrToInt(EdtDesPort.Text),PChar(sBuf)^, Length(sBuf));
我这样做,发送数据,结果不正确,为什么,我想把'40 40 40 40 01 fb 05 00 00 00 00 21 00 01 00 00 23'以这种方式(16进制)发送给设备,
不知道什么地方错了,希望大家给我指出来,
var
sBuf: AnsiString;
Buf: array [0..1023] of Char;
iSize: Integer;
begin
sBuf := '40 40 40 40 01 fb 05 00 00 00 00 21 00 01 00 00 23';
sBuf := StringReplace(sBuf, ' ', '', [rfReplaceAll]);
iSize := Length(sBuf) div 2;
ZeroMemory(@Buf, SizeOf(Buf));
HexToBin(PChar(@sBuf[1]), Buf, SizeOf(Buf));
UDPServer.SendBuffer(Trim(EdtDesIP.Text),StrToInt(EdtDesPort.Text),Buf, iSize);