2012-01-31 13 views
5

¿Cuál es el método preferido para leer/escribir en sockets TCP/IP en PHP? Hay muchas, muchas maneras de hacerlo, incluyendo:PHP Socket I/O Methods

  • fread() y fwrite()
  • fgets() y fputs()
  • file_get_contents() y file_put_contents()
  • stream_get_contents()
  • stream_socket_recvfrom() y stream_socket_sendto()
  • probablemente varios otros que No me he encontrado ...

que dan cuenta de que fgets() y fputs() funcionan un poco diferente (por líneas en lugar de trozos arbitrarios de datos), pero realmente no entienden las diferencias de los demás y qué método sería mejor para qué fines.

Editar: También socket_recv() y socket_send().

Editar # 2: También socket_read() y socket_write().

Respuesta

3

Con muchas de estas funciones, se pueden especificar desplazamientos y longitudes máximas, proporcionando mucha superposición (y confusión) entre ellas. En general, sin embargo, se utilizan como se describe aquí:

+0

He estudiado las páginas del manual para todas estas funciones antes de publicarlas aquí. Supongo que estoy buscando más explicaciones sobre por qué hay más de 5 conjuntos de métodos que pueden hacer más o menos lo mismo. Incluso las funciones que aceptan desplazamientos/longitudes – FtDRbwLXw6

+3

@drrcknlsn porque eso es lo que PHP es conocido. Para citar a nuestro propio Jeff Atwood PHP "es como una explosión virtual en la fábrica de palabra clave y función". (http://www.codinghorror.com/blog/2008/05/php-sucks-but-it-doesnt-matter.html) Hay muchísimos métodos porque las personas escribieron toneladas de maneras diferentes de hacer lo mismo. – tkone

+0

@tkone: lol, gran artículo. – FtDRbwLXw6