客户端/ IP和设备监视器

时间:2012-11-01 18:25:55

标签: c linux sockets device

假设我想拥有一台可以接受套接字连接的服务器,并且还可以监控插入服务器的设备。

服务器可以做两件事。

1。通过TCP / IP接受/监控客户端连接(recv并从中发送);

2。监控设备(recv并从设备发送);

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

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

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

或者我有什么建议可以这样做?感谢。

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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