假设我想拥有一台可以接受套接字连接的服务器,并且还可以监控插入服务器的设备。
服务器可以做两件事。
1。通过TCP / IP接受/监控客户端连接(recv并从中发送);
2。监控设备(recv并从设备发送);
从1号开始,我计划使用linux套接字来接受客户端连接。
从2号开始,我计划使用libudev.h库来监控设备。哪个有关于signal11的教程..
我已经编写了linux套接字和libudev.h ..但它们是单独的用户空间应用程序。我需要将它们合并为一个..我该怎么做?。
或者我有什么建议可以这样做?感谢。
答案 0 :(得分:1)
所以你需要多路复用你的I / O?
如果这就是你所要求的那么你有多种选择。传统的UNIX方法是使用select或poll。 - http://www.linux-mag.com/id/331/
或者您可以为每个需要对其执行I / O的连接生成线程。这当然是最简单的选择,但是在维护两个线程之间的数据完整性方面充满了风险,锁定和竞争条件使得实施起来比我更复杂(我认为)比轮询。
您当然可以将它们作为单独的进程保留,然后使用IPC的某些方法(共享内存,消息队列等)到第三个进程来统一两者的功能。这可能比线程选项稍微重一些,但两个进程之间的分离更好,使其更具弹性,但代价是(可能)更多的工作。
你能再澄清一下你的问题吗?!