我正在寻找一种与 Windows 上的 RS232 串行 COM 端口通信的方法。我在网上找到了 2 个解决方案,one这不是完全免费的(故意延迟功能)和another在 Windows 上的功能有限。后者只能写入 Windows 上的 COM 端口,不能读取。
我看不到第一个解决方案的代码,因为它被编译成一个.dll(有道理,否则人们只能编辑延迟而不购买它......)而第二个似乎只能使用fopen() 打开端口,然后 fwrite() 对其进行写入,就像对流所做的一样。但显然害怕它没有任何返回。
我知道这是可能的,因为第一个解决方案做到了,尽管它确实需要 Apache 使用 php-cgi 模块而不是 php5module。
有什么想法吗?
最佳答案
上述每个解决方案要么效率低下,要么工作量太大。
您可以只使用 PHP-DIO library (dio_fcntl, dio_open, dio_read, dio_write, dio_seek, ...)。它也在 the PHP manual's entry for DIO 中:
此 PECL 包默认不可用。如果您的 PHP 5.2.x 高于 5.2.6,要获得适用于 Windows 的它,您可以将其作为 ZIP 的一部分下载:
这两个链接都在 http://www.deveblog.com/index.php/download-pecl-extensions-for-windows/ 中找到
Here is the build from Linux ,只需获取它并执行 phpize/configure/make/make install 即可。
我不知道它是否应该在 Apache session 中使用,但请使用它。
关于php - 在 Windows 上使用 PHP 进行串行通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/627965/