阻止与非阻塞RxTx

时间:2013-12-31 12:09:07

标签: rxtx

我想知道是否应该使用RxTx进行阻塞或非阻塞通信。我必须与接受命令和回复的设备通信。

  1. 有超过20多个命令
  2. 回复pakcets不包含有关执行了哪个命令的任何信息。
  3. 我必须发送每个数据包ENQ / ACK和校验和检查。
  4. 所以阻塞似乎是最简单的解决方案。但是不是不好的做法? 如何在没有阻止的情况下完成?

1 个答案:

答案 0 :(得分:0)

写一个小服务器。有一个命令发送队列。 将顶部标记为正在进行中,发送它,异步等待响应,然后处理它并从队列中删除。

NB假设您拥有对该设备的独占访问权。

您的客户端然后向您的“服务器”发送命令,您可以轻松地对您的服务器执行阻止和非阻塞调用。

基本上隐藏在精心设计的抽象背后。