与远程串行设备通信的最佳方式

时间:2013-05-12 01:03:05

标签: c linux

正如标题所说。我正在尝试与远程串行设备通信。我知道我可以使用套接字编程作为客户端应用程序。

socket_FD = socket(AF_INET, SOCK_STREAM, 0);

当我连接到远程串行设备时,我可以使用read()和write()函数从远程串行设备发送和接收数据。

接收:

n = read(socket_FD, recvBuff, sizeof(recvBuff)-1)) > 0);

发射:

 n = write(socket_FD, bufftosend, strlen(bufftosend));

现在让我在客户端应用程序之外发送数据,例如浏览器,我将利用管道(FIFO)并在linux中创建此管道。我发送的所有数据都将重定向到远程序列。

通过终端将数据发送到管道:

echo "THIS IS A COMMAND" > /path/to/FIFO

通过php发送数据到管道:

fd = fopen("/path/to/FIFO", "w");
fwrite(fd, "THIS IS A COMMAND");
fclose(fd);

我的客户端应用程序将读取此管道,当它收到数据时,它会将其发送到远程序列。

    while((n = read(fd, buf, sizeof buf - 1)) > 0 ){ //fd is the opened pipe.

buf[n - 1] = '\0';

n = write(socket_FD, buf, strlen(buf));
}

然后,远程串行设备会响应它接收数据。

这就是我与远程串行设备通信的方式。对于读这篇文章的人来说,我与远程序列通信的方式是否正常?如果没有,请告诉我如何与远程串行设备通信。

谢谢...

0 个答案:

没有答案