【发布时间】:2017-10-06 09:30:00
【问题描述】:
我制作了一个 Delphi 应用程序,它每秒向 COM 端口传输数据。 COM 端口是数据传输软件和 VirtualBox 机器之间的虚拟零调制解调器 (com0com)。一切都很好,但如果另一端没有任何东西在监听,主机 Windows 会变得越来越无响应。
【问题讨论】:
-
我认为有可能在发送新数据之前刷新传输缓冲区。
-
要清除传输缓冲区,请调用
PurgeComm(comHandle,PURGE_TXCLEAR);您也可以将超时设置为合理的值。 -
我在使用 com0com 时也遇到过同样的情况,但后来我转而使用命名管道来模拟/调试串行通信。
-
我也想知道SetCommTimeouts 是否可以改变你的情况。
-
@Stijn Sanders:我也尝试过命名管道,但它们不适合将数据从主机传输到客户机(或者我必须更新我的软件以使用命名管道而不是 COM 端口)并且我必须始终在我不打算使用它之前启动其他虚拟机,否则我的第一个虚拟机拒绝启动。
标签: delphi serial-port com0com