コマンドラインからサービスとしてソケットサーバーを実行する必要があります。これは私が以前に使用したものの一部です。読み取り後にソケットを閉じますが、接続の配列を維持するように簡単に変更できます。
- 接続がまだ有効であるかどうかを確認するには、ある種のウォッチドッグを作成する必要があります。
- さまざまな接続を識別するための識別メカニズムが必要です。
コード:
set_time_limit( 0 );
// Set the ip and port we will listen on
$address = '127.0.0.1';
$port = 6789;
// Create a TCP Stream socket
$sock = socket_create( AF_INET, SOCK_STREAM, 0 ); // 0 for SQL_TCP
// Bind the socket to an address/port
socket_bind( $sock, 0, $port ) or die( 'Could not bind to address' ); //0 for localhost
// Start listening for connections
socket_listen( $sock );
//loop and listen
while (true) {
/* Accept incoming requests and handle them as child processes */
$client = socket_accept( $sock );
// Read the input from the client – 1024000 bytes
$input = socket_read( $client, 1024000 );
// from here you need to do your database stuff
// and handle the response
// Display output back to client
socket_write( $client, $response );
socket_close( $client );
}
// Close the master sockets
socket_close( $sock );