从erlang-sqlite3中的端口接收的消息

从erlang-sqlite3中的端口接收的消息,erlang,erlang-ports,Erlang,Erlang Ports,Erlang-sqlite3使用端口驱动程序连接SQLite数据库,并且: 我认为来自端口的消息应该如下所示: 因此,在{Port,Reply}子句中取消对io:format行的注释时,我希望看到{data,…}以获得实际的回复。我不;相反,我看到的是test.erl 我哪里做错了? 我在端口错误上收到的消息是否看起来像{'EXIT',port,Reason}? 在您的进程和端口之间似乎有另一个解码真正端口消息的进程。你确定那个端口真的是端口吗?。尝试IO:FaltPATT:~P~n,[PORT

Erlang-sqlite3使用端口驱动程序连接SQLite数据库,并且:

我认为来自端口的消息应该如下所示:

因此,在{Port,Reply}子句中取消对io:format行的注释时,我希望看到{data,…}以获得实际的回复。我不;相反,我看到的是test.erl

我哪里做错了? 我在端口错误上收到的消息是否看起来像{'EXIT',port,Reason}?
在您的进程和端口之间似乎有另一个解码真正端口消息的进程。你确定那个端口真的是端口吗?。尝试IO:FaltPATT:~P~n,[PORT]如果你会看到类似端口的东西,它是端口,如果它是中间有人的话。

似乎在你的进程和端口之间是另一个过程,它对真正的端口消息进行解码。你确定那个端口真的是端口吗?。尝试IO:FaltPATT:~P~n,[PORT]如果你会看到类似端口的东西,它是端口,如果它是中间有人的话。

< P>是最后一个相关例子。事实证明,当使用驱动程序输出项时,该项由自身发送:

receive
    Result ->
        Result
end.
而不是

receive
    {Port, {data, Result}} ->
        Result
end.
中的相关示例是最后一个。事实证明,当使用驱动程序输出项时,该项由自身发送:

receive
    Result ->
        Result
end.
而不是

receive
    {Port, {data, Result}} ->
        Result
end.

是的,刚刚检查过,它确实是一个端口。@Alexey:我不知道链接的驱动程序是否不能自己工作。是的,刚刚检查过,它确实是一个端口。@Alexey:我不知道链接的驱动程序是否不能自己工作。
receive
    {Port, {data, Result}} ->
        Result
end.