|
|
|||||
о сокет-сервере
Всем знатокам PHP большая просьба найдите ошибку
Делаю во FLASH интерактивное приложение типа чат надо написать сокет-сервер Практически все готово только не могу понять где ошибка Помогите пожалуйста Почта vertalm@hotmail.com <? header("Content-type: text/xml"); function check ( $value, $function ) { if( $value>=0) print( "\n<br/>function [ $function ] returns $value.(success)"); else die ( "\n<br/>function [ $function ] returns $value. (<I><B>FAILURE:</B></I> --".strerror($value)."---)" ); superflush(); } function superflush() { for($i=3;$i;$i--){ for($j=5;$j;$j--) print(" "); flush(); } } function closedown() { global $port, $listener, $guests; echo "<release> Freeing Port $port and this list:<br/>"; echo "Listening Socket ".$listener."<br/>"; for( $i=0;$i<count($guests); $i++){ echo "Client Socket ".$guests[$i]."<br/>"; close( $guests[$i] ); } echo "</release>"; superflush(); } register_shutdown_function("closedown" ); $address=gethostbyname ($SERVER_NAME); $port=19638; $maxport=19648; $guests=array(); $welcome="<WELCOME>Wwlcome to our little party</WELCOME>"; check( $listener=socket_create (AF_INET, SOCK_STREAM,0), "socket"); while(($errno=socket_bind($listener,$address))<0) if( ++$port>$maxport) die("<error>Tried up to $port".strerror( $errno )."</error>"); else echo("<try>".strerror($errno)."] Try $port<br/></try>\n" ); print( "<port>$port</port>" ); superflush(); check( $ret= socket_listen( $listener, 5), "listen"); socket_set_nonblock( $listener ); do{ if(($newguest=socket_accept( $listener ))>0){ socket_write( $newguest,$welcome, strlen($welcome)); socket_set_nonblock($newguest); array_push($guests,$newguest); } $bufs=array(); $buf=""; for($i=0;$i<count($guests);$i++) if( socket_read( $guests[$i],$buf,48)) array_push( $bufs,"<msg>" .strtoupper( strip_tags( $buf))."</msg>"); for($i=0;$i<count($guests);$i++) for($b=0;$b<count($bufs);$b++) $writeerr=socket_write($guests[$i],$bufs[$b],strlen($bufs[$b])); sleep(1); }while(!stristr($buf,"quit")); closedown(); ?> если ктото знает как по другому сделать сокет-сервер буду очень благодарен за подсказку |
Часовой пояс GMT +4, время: 02:38. |
|
« Предыдущая тема | Следующая тема » |
|
|