2012-01-31 15 views
5

Qual è il metodo preferito per leggere/scrivere su socket TCP/IP in PHP? Ci sono molti, molti modi per farlo, tra cui:PHP Socket I/O Methods

  • fread() e fwrite()
  • fgets() e fputs()
  • file_get_contents() e file_put_contents()
  • stream_get_contents()
  • stream_socket_recvfrom() e stream_socket_sendto()
  • probabilmente molti altri che Non ci sono riuscito ...

mi rendo conto che fgets() e fputs() operare diversamente una punta (da linee anziché dei blocchi di dati generici), ma in realtà non comprendere le differenze negli altri e quale metodo sarebbe meglio per scopi quali.

Modifica: Anche socket_recv() e socket_send().

Modifica # 2: Anche socket_read() e socket_write().

risposta

3

Con molte di queste funzioni, è possibile specificare offset e lunghezze massime, fornendo molta sovrapposizione (e confusione) tra di loro. Generalmente, tuttavia, essi sono utilizzati come descritto qui:

+0

Ho studiato le pagine di manuale per tutte queste funzioni prima di postare qui. Credo che sto cercando più di una spiegazione perché ci sono più di 5 set di metodi che possono fare approssimativamente le stesse cose. Anche le funzioni che accettano offset/lunghezze – FtDRbwLXw6

+3

@drrcknlsn perché è ciò che PHP è noto per. Citare il nostro Jeff Atwood PHP "è come un'esplosione virtuale nella parola chiave e nella fabbrica di funzioni". (http://www.codinghorror.com/blog/2008/05/php-sucks-but-it-doesnt-matter.html) Ci sono un sacco di metodi perché la gente ha scritto un sacco di modi diversi per fare la stessa cosa. – tkone

+0

@tkone: lol, ottimo articolo. – FtDRbwLXw6