PHP从套接字获取可用字节
所以我一直在写这个工具,我正在使用这些(不是),与之不同的是,我猜测第二个工具使用的是严格基于流的套接字。问题是你不能在我使用的插座上使用PHP从套接字获取可用字节,php,sockets,Php,Sockets,所以我一直在写这个工具,我正在使用这些(不是),与之不同的是,我猜测第二个工具使用的是严格基于流的套接字。问题是你不能在我使用的插座上使用 除了从fsockopen()返回的流是一个围绕常规套接字的托管包装器之外,还有其他方法可以获取可用字节的数量吗?;未读字节(这可能是您想要的)是套接字上的read()(由包装器本身生成)和包装器上的fread()(由脚本生成)之间的差异 包装器读取8192字节的数据块,但是fread()或fgets()可能无法一次读取所有数据,这就是为什么可以查询未读元数据
除了从
fsockopen()
返回的流是一个围绕常规套接字的托管包装器之外,还有其他方法可以获取可用字节的数量吗?;未读字节(这可能是您想要的)是套接字上的read()
(由包装器本身生成)和包装器上的fread()
(由脚本生成)之间的差异
包装器读取8192字节的数据块,但是fread()
或fgets()
可能无法一次读取所有数据,这就是为什么可以查询未读
元数据字段的原因;这是否有用是另一回事;-)
使用常规套接字时,您可以:
- 使用
等待数据可用,然后使用适当大的socket\u select()
socket\u read()
- 使用
socket\u set\u nonblock()