php Socket通信

时间:2023-03-08 23:36:28
php Socket通信
 <?php
error_reporting(0);
$host = "0.0.0.0";
$port = 1082;
$maxUser = 10; set_time_limit(0); $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die("socket create failed: " . socket_strerror( socket_last_error() ) . "\n"); socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, true) or die("option set failed: " . socket_strerror( socket_last_error() ) . "\n");
socket_bind($socket, $host, $port) or die("socket_bind() failed: " . socket_strerror( socket_last_error() ) . "\n");
socket_listen( $socket, 3 ) or die("socket_listen() failed: " . socket_strerror( socket_last_error() ) . "\n"); echo "Starting Listen!\n";
do{
if( $msgSocket = socket_accept($socket) === false ){
echo "socket_accept() failed: " . socket_strerror( socket_last_error() ) . "\n";
break;
}else{
$msg = "hello world";
socket_write($msgSocket, $msg, strlen( $msg )); echo "read client message\n";
$buf = socket_read($msgSocket, 8192);
$talkback = "received message: $buf\n"; echo $talkback; if( false === socket_write($msgSocket, $talkback, strlen($talkback)) ){
echo "socket_write() failed reason:" . socket_strerror(socket_last_error($sock)) ."\n";
}else{
echo "send success\n";
} //socket_send($msgSocket, $buf, $len, $flags);
}
socket_close( $msgSocket ); }while ( true ); socket_close($socket);
?>