0

2 つのクライアント間の単純なチャット アプリケーション用に、複数のクライアントを 1 つのサーバーに接続する方法。複数のソケットまたはポート、参照またはサンプルコードまたはガイダンスを作成する必要がある場合、ネットで適切な回答が得られませんでした..これが私のサーバーコードです

$host = "127.0.0.1";
$port = 25003;

// No Timeout 
set_time_limit(0);
$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n");
//echo $socket;
$result = socket_bind($socket, $host, $port) or die("Could not bind to socket\n");
$result = socket_listen($socket, 3) or die("Could not set up socket listener\n");
$spawn = socket_accept($socket) or die("Could not accept incoming connection\n");

$input = socket_read($spawn, 1024) or die("Could not read input\n");
$output = strrev($input);    

socket_write($spawn, $output, strlen ($output)) or die("Could not write output\n"); 
socket_close($spawn);
socket_close($socket);
4

1 に答える 1

0

ソケットに複数の接続がキューに入れられている場合は、最初の接続が使用されます。保留中の接続がない場合はsocket_accept()、接続が存在するようになるまでブロックします。サーバー上に複数のクライアントを配置する場合は、ノンブロッキングを使用する必要があります。

socket_set_nonblock($socket);
于 2013-01-24T05:41:34.803 に答える