我目前正在Racket中编写一个项目,我需要与一些(模拟)设备进行通信。我正在使用Racket管道。设备可以从管道读取,并在管道上写入生成的答案。管理员还能够在管道上看到生成的答案并在管道上写入命令。
设备可以通过以下代码将消息写入管道:
File1:
(#%require "communication.rkt")
(write-string message output)
(flush-output output)
通信导出输入和输出端口:
File2:
(define-values (input output) (make-pipe #f))
管家从管道中读取消息:
File3:
(#%require "communication.rkt")
(if (char-ready? input)
(read-string 1 input)
当de管家尝试从管道读取字符串时,'char-ready'总是返回#f ..但我确定设备在管道上写了一些内容。有没有人看到我的问题?
谢谢!