首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

关于recv阻塞的有关问题

2014-05-26 
关于recv阻塞的问题如果系统接收了500个字节,但是我要读取1000个字节。这个时候调用select应该会返回这个套

关于recv阻塞的问题
如果系统接收了500个字节,但是我要读取1000个字节。
这个时候调用select应该会返回这个套接字吧,因为系统并不知道我要去读多少。
那如果我要保证recv不会阻塞的话是不是要调用ioctlsocket,去看看有多少数据能读?
如果是这样的话我是不是可以不用去调用select,直接调用ioctlsocket去看看能读多少就可以避免阻塞了?

[解决办法]
用select就可以避免阻塞。

[解决办法]
尽量不要使用ioctlsocket,因为有平台相关性
[解决办法]

探讨

引用:
用select就可以避免阻塞。


select不是只检测是不是处于可读状态么
我要是一次读一大堆数据read应该还是会阻塞的吧

[解决办法]
探讨

引用:
尽量不要使用ioctlsocket,因为有平台相关性


socket不是本身就有平台相关性的?

[解决办法]

mark

[解决办法]
你用select判断后,不会阻塞的,
你会读取目前socket系统缓存的数据。

[解决办法]
你用select判断后,不会阻塞的,
你会读取目前socket系统缓存的数据。

[解决办法]
探讨

好吧
我理解错了
recv会返回实际读到的字节数,有可能小于recv中指定的字节数
那我要是一次读一个结构体该怎么办?
非阻塞的recv可能读不完整呃

热点排行