Note:
1. When socket_bind is used, the IP address cannot be a real loopback address, for example, 127.0.0.1.
2. When server. php is running in the backgroundNohup PHP server. php>/var/tmp/a. log 2> & 1 &
I. UDP
1) server. php
<? PHP // Error_reporting (e_all ); Set_time_limit (0 ); Ob_implicit_flush (); $ Socket = Socket_create (af_inet, sock_dgram, Sol_udp ); If ($ Socket === False ){ Echo "Socket_create () failed: reason:". socket_strerror (socket_last_error (). "\ n" ;} $ OK = Socket_bind ( $ Socket , '1970. 85.218.20.', 202 ); If ( $ OK === False ){ Echo "Socket_bind () failed: reason:". socket_strerror (socket_last_error ( $ Socket ));} While ( True ){ $ From = "" ; $ Port = 0 ; Socket_recvfrom ( $ Socket , $ Buf , 1024, 0, $ From , $ Port ); Echo $ Buf ; Usleep (1000 );} ?>
2) client. php
<?PHP$ Sock= Socket_create (af_inet, sock_dgram,Sol_udp );$ Msg= 'Hello';$ Len=Strlen($ Msg); Socket_sendto ($ Sock,$ Msg,$ Len, 0, '1970. 85.218.20.', 202); Socket_close ($ Sock);?>
I. TCP Mode
1) server. php
<? PHP // Error_reporting (e_all ); Set_time_limit (0 ); Ob_implicit_flush (); $ Socket = Socket_create (af_inet, sock_stream, Sol_tcp); socket_bind ( $ Socket , '192. 168.2.143 ', 192 ); Socket_listen ( $ Socket ); $ Acpt = Socket_accept ( $ Socket ); Echo "Acpt! \ N" ; While ( $ Acpt ){ $ Words = Fgets (Stdin); socket_write ( $ Acpt , $ Words ); $ Hear = Socket_read ( $ Acpt , 1024 ); Echo $ Hear ; If ("Bye \ r \ n" = $ Hear ) {Socket_shutdown ( $ Acpt ); Break ;} Usleep (1000 );} Socket_close ( $ Socket ) ?>
2) client. php
<? PHP $ Socket = Socket_create (af_inet, sock_stream, Sol_tcp ); $ Con = Socket_connect ( $ Socket , '192. 168.2.143 ', 192 ); If (! $ Con ) {Socket_close ( $ Socket ); Exit ;} Echo "Link \ n" ; While ($ Con ){ $ Hear = Socket_read ( $ Socket , 1024 ); Echo $ Hear ; $ Words = Fgets (Stdin); socket_write ( $ Socket , $ Words ); If ($ Words = "Bye \ r \ n "){ Break ;} Socket_shutdown ( $ Socket ); Socket_close ( $ Sock ); ?>