php中socket的用法详解
本文实例详细讲述了php中socket的用法,分享给大家供大家参考。具体用法如下:
一、开启socket
phpinfo();查看是否开启了socket扩展,否则在php.ini中开启。
二、服务器端代码的写法
<?php error_reporting(E_ALL); set_time_limit(0); //ob_implicit_flush();
$address='127.0.0.1'; $port=10005; //创建端口 if(($sock=socket_create(AF_INET,SOCK_STREAM,SOL_TCP))===false){ echo"socket_create()failed:reason:".socket_strerror(socket_last_error())."\n"; }
//绑定 if(socket_bind($sock,$address,$port)===false){ echo"socket_bind()failed:reason:".socket_strerror(socket_last_error($sock))."\n"; }
//监听 if(socket_listen($sock,5)===false){ echo"socket_bind()failed:reason:".socket_strerror(socket_last_error($sock))."\n"; }
do{ //得到一个链接 if(($msgsock=socket_accept($sock))===false){ echo"socket_accepty()failed:reason:".socket_strerror(socket_last_error($sock))."\n"; break; } //welcome 发送到客户端 $msg="<fontcolor='red'>serversend:welcome</font><br/>"; socket_write($msgsock,$msg,strlen($msg)); echo'readclientmessage\n'; $buf=socket_read($msgsock,8192); $talkback="receivedmessage:$buf\n"; echo$talkback; if(false===socket_write($msgsock,$talkback,strlen($talkback))){ echo"socket_write()failedreason:".socket_strerror(socket_last_error($sock))."\n"; }else{ echo'sendsuccess'; } socket_close($msgsock); }while(true); //关闭socket socket_close($sock); ?>