2012-01-27 41 views
1

我只是碰到了一个有趣的MSDN文章这使我相信,软件流控制跑不支持:http://msdn.microsoft.com/en-us/library/ff802693.aspxWindows支持软件流控制吗?

引述相关段落:

fBinary:指定二进制模式是否启用。 Windows API不支持非二进制模式传输,所以此成员应为TRUE。尝试使用FALSE将不起作用。

由于软件流量控制使用了两个特殊字符,XOFF和XON,二进制传输不能使用软件流控制; XON或XOFF字符可能会出现在二进制数据中,并会干扰数据传输。

这是否意味着Windows不再支持软件流控制?它曾经吗?

回答

1

我可以看到可能的困惑,但不是,那不是这个意思。 DCB.fBinary仅仅意味着驱动程序本身不会改变应用程序发送的数据。 * Binary transfers“讲述了应用程序通过端口发送的数据kind。说什么时候传输文件如果发送EXE文件,那么文件数据不可避免地包含一个与XON匹配的字节值或XOFF。如果设备使用Xon/Xoff握手,那么它不会工作正常,它会错误地将该字节解释为握手字符。

Xon/Xoff握手没有问题,您只需制作确保你发送的数据本身不包含Ctrl + Q和Ctrl + S,就像文本一样,与二进制传输相反

+0

好吧,所以我有一个后续问题,看看'DCB.fBinary'必须是真的,DCP.EofChar是否曾经使用过?我看到论坛帖子指出'DCB.fB'时会忽略'DCP.EofChar' inary“是真实的,但规范并不表示这种或那种方式。有任何想法吗? – Gili 2012-01-27 16:40:24

+0

我看到它造成麻烦,所以我知道它至少由一个驱动程序实现。你最好把它留在零。 – 2012-01-27 16:43:40

+0

好吧,所以零意味着禁用?这对所有的'char'属性都是如此吗? – Gili 2012-01-27 16:46:10