在进行网络套接字编程的时候,当数据到来时,需要读取数据,但是有时候需要确定有多少数据需要读取,在linux和windows平台下都有特定的函数进行获取,并且参数都一样。linux下的使用ioctl函数:
u_long avail =0;
ioctl(socket, FIONREAD, &avail);
其中socket为套接字标识符,FIONREAD为获取待读取数据大小的标志,这是一个宏定义,并且在windows和linux平台下都是送入这个标志,函数执行完后,avail的值就是待读取数据的大小
windows下使用ioctlsocket函数
u_long avail =0;
ioctlsocket(socket, FIONREAD, &avail);
其中各参数的意义都和ioctl函数的三个参数相同。