epoll

    1热度

    3回答

    我想使用epoll编写基于事件的服务器。 每个客户端都有不同的请求,服务器应该对它们做出响应。 服务器将等待连接,当连接可用时,它们排队等待读取。 数据从客户端读取,他们将排队等待写入。处理完数据后,应向每个人发送适当的响应。 所有的操作将是异步的。 问题是,我怎么能确定哪个套接字准备写入哪个套接字?我可以存储一个(套接字,数据)元组,但是这是一种糟糕的编程。 我想知道是否可以为每个套接字或每个e

    1热度

    1回答

    当我尝试使用epoll打开最大数量的并发套接字连接时,它在1024上进行了扫描。之后,它给出了“打开的文件过多”错误。我知道这不是限制。我尝试在/etc/security/limits.conf中更改nofile参数值,但我只有只读权限。是否有任何方法可以同时打开多个文件描述符?

    5热度

    1回答

    请考虑以下情况:您正在部署可提供1个请求/秒的应用程序。如果我在1秒内发送10个请求会发生什么?我写了一个简单的应用程序来测试:https://github.com/amezhenin/nginx_slow_upstream。 此测试显示您的请求将被发送_in_exact_same_order_。 现在,这看起来像Nginx有一些请求队列,但我的同事(管理员)说,在Nginx中没有任何队列。所以我

    1热度

    1回答

    我正在使用多线程嵌入式应用程序,其中epoll在其中一个线程中用于IO。我依赖epoll的一个特殊功能,它指定关闭一个文件描述符会自动将它从epoll集中移除(man 7 epoll中的Question/Answer 6)。在这种情况下,文件描述符关闭在调用epoll_wait的同一个线程中完成。结果发生的是epoll_wait在关闭文件描述符后返回一个事件,并且程序最终崩溃,因为它试图访问当文件

    1热度

    1回答

    我寻求帮助,了解以下情况的名单之前: 1.我有一个TCP套接字连接建立对等体。 2.我加入文件描述符的清单,供选择 3.选择提醒我被监测到插座上的任何活动,我的应用程序处理通过插座上的节点发送数据。 4.现在,我通过select从要监视的文件描述符列表中删除与套接字关联的文件描述符。 5. Peer在该套接字上发送一些数据。我不读这些数据。 6.几秒钟后,我再次与插座文件描述符的列表相关的文件描述

    1热度

    1回答

    是否有eventfd_write的详细文档? man eventfd_write调出eventfd的联机帮助页。在那个manpage上,它提到了glibc提供的eventfd_write()。 Google只为整个gnu的网站编制了6页,用于eventfd_write。它们中没有一个与文档有关。 任何想法,我可以找到它? P.S.另一个侧面问题(但相关的问题):是否有邮件列表来询问有关glibc的

    0热度

    1回答

    我试图在linux中制作rtsp服务器,我认为服务器自动选择单个或多个线程。如你所知,RTSP在服务器和客户端之间有很多数据包。 (视频,音乐像实时数据) 所以,我认为epolling不是好的选择。因为在这种情况下每次都发生事件。 此外,我听说每个线程一个套接字并不好。由于相同的原因,这也不是好的选择。 我看到了有关这方面的示例代码,没有人在一个线程中使用epolling或multi socket

    3热度

    2回答

    我会写一个小测试,通过捕获任何中断的信号来显示epoll_Wait和epoll_pwait()之间的差异。任何人都可以通过一个小代码或任何方法提供给我,以找到它? int epoll_pwait(int epfd, struct epoll_event *events, int maxevents, int timeout, const sigset_t *si

    0热度

    4回答

    我知道,如果远程主机正常关闭连接,epoll将报告EPOLLIN,并呼吁read或recv不会阻止,并会返回0字节(即结束流)。 然而,如果连接没有正常关闭,和一个或writesend操作失败,这是否导致epoll随后返回EPOLLIN该插座,产生流场景的相同/相似端? 我试图找到关于这种行为的文档,但都没有成功,而我可以测试它,我不感兴趣,在与特定的内核版本特定的分布会发生什么。

    0热度

    1回答

    你好,我想使用epoll的一个原始的以太网服务器/客户端应用程序 我需要监控至少两个文件描述符 一个用于连接(原始套接字) 另一个用于标准输入,因为我必须从键盘获取一些数据(fileno(stdin)) 我已经在线阅读,必须创建一个for循环,以便将文件描述符添加到epoll实例,但我可以得到它工作可以有人帮助我以如何实施这个例子 谢谢