在PHP中读/写TCP/IP套接字的首选方法是什么?有很多种方法可以做到这一点,包括:
fread()
和fwrite()
fgets()
和fputs()
file_get_contents()
和file_put_contents()
stream_get_contents()
stream_socket_recvfrom()
和stream_socket_sendto()
- 可能还有几个我没有遇到过的
我意识到fgets()
和fputs()
的操作有点不同(通过行而不是任意的数据块),但我真的不明白其他方法的区别,也不明白哪种方法最适合什么目的。
编辑:还有socket_recv()
和socket_send()
。
编辑#2:还有socket_read()
和socket_write()
。
使用其中许多函数,可以指定偏移量和最大长度,从而在它们之间提供大量重叠(和混淆)。然而,通常情况下,它们的使用如下所述:
-
fread、fwrite、stream_socket_recvrom、stream_slocket_send一次读取/写入特定数量的字节
-
fgets、fputs一次读/写一行。
-
file_get_contents、file_put_contents和stream_get_contents一次读取/写入整个内容流。