0

假设我想要一个可以接受套接字连接并且还可以监视插入服务器的设备的服务器。

服务器可以做两件事。

1. 通过 TCP/IP 接受/监视客户端连接(从它们接收和发送);

2.监控设备(从设备接收和发送);

从数字 1 开始,我计划使用 linux 套接字来接受客户端连接。

从 2 号开始,我计划使用 libudev.h 库来监控设备。其中有关于signal11的教程..

我已经编写了 linux 套接字和 libudev.h.. 但它们是单独的用户空间应用程序。我需要将它们合并为一个.. 我应该怎么做?

或者有什么建议我该怎么做?谢谢。

4

1 回答 1

1

所以你需要多路复用你的 I/O?

如果这就是您要问的全部,那么您有多种选择。传统的 UNIX 方法是使用 select 或 poll。- http://www.linux-mag.com/id/331/

或者,您可以为每个需要在其上完成 I/O 的连接生成线程。这自然是最简单的选择,但在维护两个线程之间的数据完整性方面充满风险,锁定和竞争条件使得可靠的实现比轮询更棘手(我认为)。

当然,您仍然可以将它们保留为单独的进程,然后使用 IPC 的某种方法(共享内存、消息队列等)到第三个进程来统一两者的功能。这可能比线程选项重一点,但两个进程之间的分离更好,使其更具弹性,但代价是(可能)更多的工作。

你能再澄清一下你的问题吗?

于 2012-11-01T20:44:28.013 回答