ChinaUnix.net
相关文章推荐:

如何使用linux epoll

谁能够帮我解释一下,linux使用epoll的例子,这个例子中,兰山部分没有看明白: 为什么收到“epollIN”,即有数据需要读取,read之后,还要修改要处理的事件为epollOUT呢? for ( ; ; ) { //等待epoll事件的发生 nfds=epoll_wait(epfd,events,20,500); //处理所发生的所有事件 for(i=0;i

by yuonunix - C/C++ - 2008-01-15 16:21:21 阅读(6688) 回复(4)

相关讨论

[code]#include #include epoll.h> #include #include #include #include #include #include #include #include #include #include #define maxevents 200 #define max_thread 6000 #define MAXLINE 1024 #define max_connect 5 void *work(void *arg); void setnonblocking(int so...

by benjiam - C/C++ - 2007-06-12 11:37:13 阅读(1493) 回复(1)

使用epoll , 的TCP服务器 生成俩个epoll fd , 一个用于接收,一个用于发送 ,这样做是否正确 我使用下面的模型时发生过两种异常情况: 1。因为我的Send函数是给其他消息处理线程调用的,会发生处理线程挂住的情况,但是过一段时间(1,2小时,没具体看)又恢复了,经过跟踪,应该是挂在 Send函数这里 2. 程序运行了几天后,很多新连接上来,接受处理完第一个包后,调用Send返回时,socket 就收到 input/output error 的错误,然后关...

by qinyd - C/C++ - 2006-12-16 21:38:50 阅读(1233) 回复(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)

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 阅读(15099) 回复(10)

在阻塞型套接口情况下用不用设置epollET 就是这个地方 ev.events = epollIN | epollET的时候:em16: :em16:

by fcloudf - C/C++ - 2007-09-06 13:34:14 阅读(1745) 回复(8)

今日使用epoll开发了一个项目,使用的是TCP连接,运行还算正常,但运行的时间一长,比如3天,就会出现500条左右的状态为 ESTABLISHED 连接,而且这些连接都是僵死的,会一直保持这样的状态,初步判断,可能是由于对方的网络中断导致这样的状态,但 为什么这样的状态会一直保持这样,有什么好的办法解决这个问题吗?请各位大侠指教.

by zhw_yihui - C/C++ - 2006-08-14 15:13:38 阅读(1367) 回复(3)

大家好,我想问下,能否在不同的线程中使用epoll_wait和epoll_ctl? 比如: thread1(void *) { .... epoll_wait(); ....... } thread1这个时候正在等待epoll_wait的返回。 而另外一个线程这时候调用epoll_ctl添加一个handle进来,或者是改变已经在epoll_wait集合中的某handle的事件。 那么epoll_wait返回的会是正确的事件吗?这里需要有同步吗,是否只能在两个epoll_wait之间进行epoll_ctl操作? 这个问题一直困惑...,在单C...

by little_apple - C/C++ - 2008-01-22 19:59:39 阅读(2686) 回复(4)

epoll 里面 要使用gethostname() 但这个是阻塞的 怎么办呢? 还有一个问题 就是 我的程序是客户端的,而不是服务器端的。 那么connect 这个操作, 实在加入epoll 以前做呢? 还是加入epoll 以后做?

by benjiam - C/C++ - 2007-06-06 00:07:09 阅读(1257) 回复(0)

epoll或KQUEUE模式下如何对SOCKET进行限速,比如针对某个用户的连接的最高速度2MB/s,不是那种每个连接用一个线程或进程来处理延时的

by musics - C/C++ - 2008-07-31 15:57:44 阅读(5592) 回复(11)

我在windows下用server-u 安装ftp,建立用户为user 目录为光驱,(我的光驱为I:),测试过已经可以登陆 现在使用软盘启动系统并以经启动了网卡出现登陆安装的界面 到了写ftp地址时 ftp site name:192.168.0.29(ftp地址) red hat ditctory: 请教如何

by china-red - 系统管理 - 2007-01-10 17:54:24 阅读(2276) 回复(1)