有没有办法知道Python套接字中有多少数据可供接收?

时间:2011-08-15 03:33:52

标签: python sockets recv ioctl fcntl

我发现我必须使用ioctl。这里有类似的问题:

我的问题是:

  1. Python中FIONREAD的等价物是什么?如何调用sock.ioctl()来获取可用的字节数?
  2. 如果我在Windows上使用Python 2.5怎么办? socket.ioctl是2.6版本中的新功能。

2 个答案:

答案 0 :(得分:3)

由于没有可行的方法(通常答案是错误的),因此没有内置的方式来要求它。

如果使用非阻塞套接字,只需读取尽可能多的数据,并且只返回存在的数据。

答案 1 :(得分:0)

你可以得到那个数字,但这个数字不是很有用。内核之间有一个时间窗口读取数字,您的代码实际使用它。在该窗口中,更多数据可以到达套接字。换句话说,这个数字很可能是陈旧的。