好吧,即使Embarcadero声明它不能保证返回准备好在套接字缓冲区中读取的字节的准确结果,但是如果你看一下,当你将 -1 放在 Socket.ReceiveBuf (这是 ReceiveLength 包装的内容)时,它会调用ioctlsocket和FIONREAD 来确定网络输入缓冲区中可以从套接字 s 读取的待处理数据量。
那么,它怎么不安全或不好呢?
例如:ioctlsocket(Socket.SocketHandle, FIONREAD, Longint(i));
好吧,即使Embarcadero声明它不能保证返回准备好在套接字缓冲区中读取的字节的准确结果,但是如果你看一下,当你将 -1 放在 Socket.ReceiveBuf (这是 ReceiveLength 包装的内容)时,它会调用ioctlsocket和FIONREAD 来确定网络输入缓冲区中可以从套接字 s 读取的待处理数据量。
那么,它怎么不安全或不好呢?
例如:ioctlsocket(Socket.SocketHandle, FIONREAD, Longint(i));