Chinaunix
标题:
高手请帮忙: 非阻塞Socket 报错:Resource temporarily
[打印本页]
作者:
userjj
时间:
2003-12-08 15:04
标题:
高手请帮忙: 非阻塞Socket 报错:Resource temporarily
我一运行这个程序,在read数据时就报出Resource temporarily unavailable 的错误, 请高手帮忙看一下啊~
for(;;)
{
if((nRet=select(m_socket+1,&fdread,NULL,NULL,NULL)) <0)
{
perror("select error\n");
continue;
}
if(FD_ISSET(m_socket,&fdread))
{
int sclient=accept(m_socket,&cliaddr,&clien);
unsigned char buffer[128];
[b]int readlen=read(sclient,buffer,128);[/b] 这里就出错了
if(readlen <0) { printf("readbytes:%s\n",strerror(errno)); }
printf("read %d bytes from client\n",readlen);
close(sclient);
}
}// end for
return 0;
}
复制代码
作者:
zhouyuanchang
时间:
2003-12-12 09:09
标题:
高手请帮忙: 非阻塞Socket 报错:Resource temporarily
clien=sizeof(liaddr);
插入这一行
int sclient=accept(m_socket,&cliaddr,&clien);
unsigned char buffer[128];
int readlen=read(sclient,buffer,12
;
这里就出错了
if(readlen <0) { printf("readbytes:%s\n",strerror(errno)); }
作者:
阿Benni
时间:
2004-03-10 08:39
标题:
高手请帮忙: 非阻塞Socket 报错:Resource temporarily
在Alpha机器上,这个错误"EAGAIN"等同于"EWOULDBLOCK"。我个人认为这个错误直接返回“0”,不要做“close”操作。即:
int readlen=read(sclient,buffer,128,0);
if (readlen <0) {
if ( errno != EWOULDBLOCK ) {
printf("readbytes:%s\n",strerror(errno));
close(sclient);
}
}
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2