问题:
首先在不确定接受数据大小的情况下,如何能更正确有效的接受数据。。
简要说明:
首先我采取的是阻塞模式,一般的情况下我是通过select来进行检测协议栈中是否有数据可读,然后等函数返回并且有可读数据的时候在进行通过recv函数读取数据,并且会函数返回的读取字节数是否和要读取的字节数相同,如果不同的话,则之前要读取的字节数-已读取的字节数 = 剩下要读的字节数,并且将缓冲区指针+上已读取到的大小,然后继续循环读取。直到读取到的数据 = 剩下要读取的数据才跳出循环。。
当然这里是处理在确定接受数据大小的情况下,但是如果在不确定接受数据大小的情况下,我却遇到问题了,不直到是否能去检测到协议栈中到底有多少数据可读,这样再去读取的话,就好很多了,希望各位前辈给点经验。。谢谢。
[ 本帖最后由 学习的鱼 于 2008-11-28 17:03 编辑 ] |