入门的问题:向网络的另一端发送指令,是怎样知道对方的执行结果的?

sc_arhat 2010-07-25 01:18:13
我用idUDPServer监听网络的另一端发送过来的数据包,如果收到数据包,我就处理。但有时候需要发送指令给网络另一端
的设备让其工作,设备完成动作后也回给我发回数据,我也可以通过OnUDPRead事件接收到设备的反馈结果,但关键是我如何知
道设备返回的结果就是我刚才发送指令的返回结果呢?比如说我给对方连续发送了两个命令都叫它开门,我如何知道它是先返
回我第一个命令的结果还是先返回我第二个命令的结果呢?
如果我想通过写一个函数来执行这个指令并通过返回值得到结果,该怎么做呢?
请各位前辈指点一个。谢谢!
...全文
69 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
allen12345 2010-08-10
  • 打赏
  • 举报
回复
自定义数据包,可以包含个流水号来区分不就行了。
sc_arhat 2010-07-27
  • 打赏
  • 举报
回复
感谢楼上,但还是有些不明白,比如说我想写一个函数格式如下:
function checkEqu(EquID: string): string;
begin
发送指令。。。。
result :=????? //返回设备的回应,这里怎么办
end;
我如何在函数体中获得设备返回的信息,或者是超时等?
这个问题应该不局限于UDP通讯,我想TCP,串口通讯应该也是一样的,做过设备接口程序的大虾们应该对这个比较清楚吧,小弟刚刚接触这个,希望各位大虾不吝赐教。万分感谢!
sanguomi 2010-07-25
  • 打赏
  • 举报
回复
UDP不会帮你保证有序的
自己设计包的时候,在包里加序号
或者第一个包发完后,等到服务端返回处理包 ,客户端才发第2条包

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧