【问题标题】:Clients/IP and Device Monitor客户端/IP 和设备监视器
【发布时间】:2012-11-01 18:25:54
【问题描述】:

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

服务器可以做两件事。

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

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

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

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

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

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

【问题讨论】:

    标签: c linux sockets device


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 是的,你明白我的意思。它就像一个代理服务器,它监控设备,这些设备使用物理端口连接,以及连接在使用 ip 连接到服务器的网络中的设备。代理服务器监控的内容。从技术上讲,它会将消息中继到设备。
    • 是的.. 那么合并我的程序可以吗?
    • 我会说它在某个时候会成为必需品。取决于您要实现的目标,尽管不同的方法都有优点和缺点。大多数规模相当大的应用程序都花时间在其问题领域的所有不同方面交替进行。
    猜你喜欢
    • 2022-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-27
    相关资源
    最近更新 更多