ChinaUnix.net
相关文章推荐:

epoll 监听多线程

问2个select/epoll线程的问题 1. select 是进程限定fd数,还是线程限定fd数. 假如我创建1025个线程,每个线程管一个TCP连接。用select是否可以 2. 很描述epoll优点的,都是基于 使用一个线程epoll所有TCP连接 这种情况。 我的程序是使用线程,一个线程epoll一个TCP连接。这样 epoll相对select还有没有优势

by qinyd - C/C++ - 2008-10-22 21:40:39 阅读(7648) 回复(12)

相关讨论

epoll 线程使用问题 关于epoll 的基本用法,我相信大家很熟悉 简单描述一下 在epoll过程中, 我们基本是epoll_wait 等待到我们 想要的事件, 并且从epoll 返回的event 里面 找出事件,找到相应 的socket 和 unit, 进行操作 我简单描述一下 我的做法 map socket, void * socket 代表 目前的socket void * 代表 和它相关的unit 对象 当unit 希望等待socket 获取数据, 那么 我们首先将socket ,和...

by benjiam - C/C++ - 2009-11-02 15:42:10 阅读(15100) 回复(10)

线程epoll 问题, epoll_wait 不返回 设计的思想是这样的。 起一个子线程,这个线程称会不断建立与服务器的连接。 主线程则会 不断在epoll_wait 等待返回然后处理。 我这里epoll_wait 不返回。 通过网络监控 发现 子线程的的连接应该建立起来了 有三步握手了。 但我的程序一直不返回 还有2点 read write 的 阻塞和非阻塞有什么区别吗? connect 的阻塞和非阻塞有什么区别? [code]#include #include <...

by benjiam - C/C++ - 2007-06-07 23:48:15 阅读(3072) 回复(1)

请问!如何实现进程+线程 socket select 或 epoll? 谢谢 :D

by siwen_unix - C/C++ - 2005-11-07 14:36:23 阅读(7319) 回复(15)

请问,我程序使用两个线程,主线程创建了epoll,并accept网络连接,并接受来自客户端的数据,并处理数据把结果存到一个结果队列中,结果队列保存数据格式是。,主线程epoll_wait和epoll_ctl,并读完数据后设置状态为可写。 另外一个线程从这个结果队列取值,根据这个fd,把处理结果返回给客户端。请问,我在写fd之后,是不是需要调用epoll_ctl再改变这个fd的状态啊?如果要改变的话怎么改变啊,主线程创建的epoll没...

by freecr - C/C++ - 2009-06-10 16:56:01 阅读(2343) 回复(5)

线程 : 创建epoll accept 线程 : 接受连接 poll wait 线程 : 等待数据,如果有数据到来,将epoll_event*赋给下面的"事务处理"线程 事务处理 栈程 : 如果recv == 0. 就epoll_ctl 将 连接fd从epoll中删除.并且调用close函数关闭该fd. 如果去掉事务处理线程,将事务处理工作在poll wait线程中做的话,epoll可以正常工作.但是一分开,在连接关闭的时候,epoll就会不断收到重复的关闭通知.假设fd=7.那么就不断地有recv ( ...

by 我learnc - C/C++ - 2009-04-07 17:11:34 阅读(3001) 回复(2)

请问线程,一个线程跑一个epoll接受客户的数据。 1:开比较少的线程 , 每个线程接受的socket一些. 2:开比较线程 , 每个线程接受的socket 少一些。 (是不是这样每个epollepoll_wait中的循环会降低效率) 谢谢........ 大家说哪一种相对比较好。

by ruchong - C/C++ - 2007-06-18 16:27:51 阅读(1580) 回复(3)

最近看了下epoll,按照epoll模型写了一个测试程序。监听一个端口,处理大量链接 。 接下来,我就想,同时监听个端口。 我将创建好的socket_fd存储在数组sock_fd[]中。 我想请教一下,接下来我该怎么做呢。

by Marsduan - C/C++ - 2014-08-13 16:08:54 阅读(5210) 回复(14)

单进程用epoll监听个端口与程序(每个程序监听一个端口)哪个效率高?有明白的告诉一下。

by nicksean - C/C++ - 2009-01-28 23:20:33 阅读(3302) 回复(1)

使用了epoll如下程序: int file_fd = -1; struct epoll_event event; int epoll_fd = 0; epoll_fd = epoll_create(256); if (epoll_fd < 0) { return -1; } file_fd = open("a", O_RDONLY | O_NONBLOCK); if (file_fd < 0) { return -1; } set_non_blocking(file_fd); event.data.fd = ...

by ericdhs - C/C++ - 2008-11-04 17:03:11 阅读(3725) 回复(6)

这只是一个线程池的框架还有许不足 : 没有实现server->client数据发送 , 还有许细节没有完善。 Lock.cpp : 锁的操作 , 读锁可以并发 , 写锁独占. Queue.h : 队列的封装 , 队列的读和写都加了锁的保护. Socket.cpp : 套接口的简单封装. Thread.cpp : 线程的封装实现了些简单的线程停止,运行等功能 , 启动别的线程的时候需要继承次类. Worker.cpp : 用户接口类 , 用户需继承此类。 ListenThread.cpp(继承Threa...

by ruchong - C/C++ - 2012-11-12 13:42:07 阅读(25892) 回复(34)