0

XAMPP で複数のクライアントを使用して動的 SQL テーブルを作成しようとしています。複数のクライアントを処理するサーバー コードを既に実行しています。以下は私のマルチ クライアント コードです。このコードは、着信クライアントを常にリッスンすることで完全に機能し、必要に応じてソケット接続を開きます。

問題: 接続が確立された後、クライアントごとに個別の SQL データベースを作成する必要があります。

元。値の SQL テーブルがあります: 温度 値 時間

クライアント 1 がメッセージを送信します: 84 摂氏 11:43:01

別のクライアントがランダムな時間に参加すると仮定します

クライアント 2 がメッセージを送信します: 88 華氏 11:43:01

より良い方法がない限り、私はこれを行っているので、各クライアントの選択肢を含むドロップダウン メニューを含むステータス ページを作成でき、明らかな競合のためにデータを同じテーブルに保存できません。そうでない場合、誰かが私を正しい方向に向けることができますか?

ありがとう!

<?php
error_reporting(1);
ini_set(‘display_errors’, ’1');
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$max_clients = 10;

socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1);
socket_bind($socket, 0, 10000);
socket_listen($socket, $max_clients);

$clients = array(’0' => array(‘socket’ => $socket));

while(TRUE)
{
$read[0] = $socket;

for($i=1; $i<count($clients)+1; ++$i)
{
if($clients[$i] != NULL)
{
$read[$i+1] = $clients[$i]['socket'];
}
}

$ready = socket_select($read, $write = NULL, $except = NULL, $tv_sec = NULL);

if(in_array($socket, $read))
{
for($i=1; $i < $max_clients+1; ++$i)
{
if(!isset($clients[$i]))
{
$clients[$i]['socket'] = socket_accept($socket);

socket_getpeername($clients[$i]['socket'],$ip);

$clients[$i]['ipaddy'] = $ip;

socket_write($clients[$i]['socket'], ‘Welcome to my Custom Socket Server’."\r\n");
socket_write($clients[$i]['socket'], ‘There are ‘.(count($clients) – 1).’ client(s) connected to this server.’."\r\n");

echo ‘New client connected: ‘ . $clients[$i]['ipaddy'] .’ ‘;
break;
}
elseif($i == $max_clients – 1)
{
echo ‘To many Clients connected!’."\r\n";
}

if($ready < 1)
{
continue;
}
}
}

for($i=1; $i<$max_clients+1; ++$i)
{
if(in_array($clients[$i]['socket'], $read))
{
$data = @socket_read($clients[$i]['socket'], 1024, PHP_NORMAL_READ);

if($data === FALSE)
{
unset($clients[$i]);
echo ‘Client disconnected!’,"\r\n";
continue;
}

$data = trim($data);

if(!empty($data))
  {
if($data == ‘exit’)
{
socket_write($clients[$i]['socket'], ‘Thanks for trying my Custom Socket Server,     goodbye.’."\n");
echo ‘Client ‘,$i,’ is exiting.’,"\n";
unset($clients[$i]);
continue;
}

for($j=1; $j<$max_clients+1; ++$j)
{
if(isset($clients[$j]['socket']))
{
if(($clients[$j]['socket'] != $clients[$i]['socket']) && ($clients[$j]['socket'] !=    $socket))
{
echo($clients[$i]['ipaddy'] . ‘ is sending a message!’."\r\n");
socket_write($clients[$j]['socket'], ‘[' . $clients[$i]['ipaddy'] . ‘] says: ‘ . $data . "\r\n");
}
}
}
break;
}
}
}
}
?>
4

0 に答える 0