1

グラフィカル Web インターフェイスを作成するための C シミュレーションがあります。HTML と ajax を使用して PHP を呼び出し、PHP がシェルを呼び出してシミュレーションを実行しました。その後、出力は Web ページに戻されます。

このスクリプトは、出力ファイル (Web ページに出力されるリンクを含む) とグラフ (gnu plot への呼び出しを使用し、出力ファイルを参照する) を生成します。Web ページでは、C シミュレーションで使用される入力ファイルをアップロードすることもできます。これらのファイルはすべてユーザー固有です。

Web ページに一度に 1 人のユーザーしかいない場合、問題はありません。ただし、5 人が同時にシミュレーションを実行したい場合、ユーザー固有のファイル (出力、グラフ、入力) はすべて上書きされてめちゃくちゃになります。

私はMySQLの経験がなく、特定のユーザーの出力または入力を保存する予定もありません(ユーザーは必要に応じてダウンロードできます)。 、たとえば、ユーザーのIPアドレスなどに基づいた名前にある種の識別タグを使用して、サーバー上に一時ディレクトリを生成します。このフォルダーは、シミュレーションの実行後、数分後に削除できます。誰でもそのようなことについて何か考えがありますか?

または、MySQL に頼る必要がありますか?

編集: 同時に最大 5 人のユーザーを実行できるようにしてから、追加のユーザー用のキューを作成するようなものを用意しても問題ありませんが、それはさらに困難になる可能性があります。

ありがとう、ジョシュ

4

3 に答える 3

2

出力をどこかに保存しないと実行できないため、一時ディレクトリの計画は問題ありません。

  • md5() や sha1() などを使用して、新しいユーザーごとに一意の ID を割り当てます。
  • ID をシミュレーターに渡し、その ID で指定されたサブディレクトリに出力ファイルを作成します。
  • その ID に従って、リンクと画像の HREF をレンダリングします。
  • 古いサブディレクトリを定期的に消去する cron を作成します。

各人は、推測できない URL で、独自の出力セットを取得します。

于 2012-07-23T19:43:55.763 に答える
1

訪問しているユーザーのセッション識別子を作成し、そのIDをパラメーターとしてcプログラムに渡すことができます。

cプログラムがユーザーが表示するファイルを作成するとき、そのユーザーのセッション識別子を使用して名前を生成する必要があります。

Webページから、ユーザーはセッションIDに一致するファイルを表示できます。このようにして、ユーザーは生成したファイルを確認できます。また、ユーザーがセッションIDを持つファイルを持っている場合は、cプログラムを不必要に呼び出す必要がない場合にユーザーを制御できます。

すでに作成されたものを提供するだけです。必要に応じて、その識別子の有効期間を制御します。

于 2012-07-23T19:44:24.203 に答える
1

おそらく、C シミュレーションでスレッド化を使用できます。または、MySQL データベースをセットアップし、PHP Database Objects (PDO)を使用してそこにデータを保存することもできます。C を使用でき、PHP で ajax を実行できる場合は、C でのスレッド化とは対照的に、mysql を実装するのがおそらく最も時間効率の良いソリューションになります (C シミュレーションが比較的複雑であると仮定します)。

于 2012-07-23T19:38:56.650 に答える