TI中文支持网
TI专业的中文技术问题搜集分享网站

如何将recv设为非阻塞模式?

我们使用DaemonNew的例子进行tcp通信,用默认的阻塞模式recv工作正常。

但想把recv改为非阻塞模式,用了下面方法:

int sockblk = 0;

setsockopt(s, SOL_SOCKET, SO_BLOCKING, &sockblk, sizeof(sockblk));

但虽然recv变为非阻塞了,会马上返回,但返回值一直是-1,查询fdError后得到代码为EWOULDBLOCK;

无论client发送什么数据,recv的缓冲区里一直是0,recv返回值也一直是-1,无法接收数据。请问该如何将recv改为非阻塞模式工作?

Shine:

请问recv flag有没有设成MSG_DONTWAIT?

xin liu:

回复 Shine:

试过了,加不加都一样。一直返回-1,而且buff都是0.
是否还需要设置其他的地方?
又或者是MCSDK比较老了,我搜了一下英文论坛,似乎目前都用PROCESSOR_SDK了?

赞(0)
未经允许不得转载:TI中文支持网 » 如何将recv设为非阻塞模式?
分享到: 更多 (0)