私の最初のサーバープログラム 現在、オンラインゲームの書き方を学んでいるので、サーバーサイドのプログラムを書く必要があります。PHP、JAVA、C などを調べました。最終的に、Alibaba Cloud や Tencent Cloud との互換性、低コスト、学習難易度の低さから Java を選択しました。 次に、Java クラスの記述方法を学び始めます。また、データベースに接続する方法と、数秒ごとにコードを実行する方法についても説明します。結局のところ、これら 2 つを組み合わせると、最もシンプルなサーバーになります。 私の最初のプログラムは非常にシンプルです。Tomcat が起動すると、6 秒ごとに実行され、一連の乱数を生成して MySQL データベースに送信します。 データベースへの書き込みとタイミング操作については、以前の記事で紹介しました。 そこで、この記事では主に自動起動する方法を紹介します。 既存のコード: 1. メイン関数: mainGame.java (ゲームを開始する関数) 2. フレーム実行クラス: gameEnterFrame.java (ループ実行を担当します。2 秒ごとに 1 回実行し、その数値をデータベースに書き込むように設定しました。) セルフスタートには重要なポイントが 2 つあります。 1. web.xmlという設定ファイルを変更する必要があります webRoot の下の WEB-INF 内。 残念ながら、私のものと同じパスがない場合は、間違ったプロジェクト タイプを作成したことになります。 新しい Web サーバー プロジェクトを作成することを忘れないでください。 このファイルに 3 行のコードを追加するだけで、autoRun という名前の自動開始クラスを実行することを Tomcat に指示できます。下の図のように青い部分が私が追加したコードです。 便宜上、ここに貼り付けてください。 <リスナー> <リスナークラス>game.autoRun</リスナークラス> </リスナー> この監視ステートメントを使用すると、実行時にゲーム パッケージ (ゲーム パッケージは私が独自に作成したゲーム クラス パッケージです。お好きなパッケージ名を作成できます) の下の autoRun クラスを実行できます。この autoRun クラスは私が書いた自動起動コードです。 具体的な書き方は以下を参照してください。 2. 自己起動コードの書き方: メイン関数につながる自己開始コードが必要です。ゲームパッケージの下にautoRun.javaという名前の新しいファイルを作成します。 パッケージゲーム; import javax.servlet.ServletContextEvent; //これは、自己起動のサーバー バックグラウンド イベントに使用されるクラスです。 import javax.servlet.ServletContextListener; //これは、自己起動のサーバー バックグラウンド リスニングに使用されるクラスです。 import game.mainGame; //簡単に実行できるように、main 関数をインポートします。 //autoRun クラスを宣言し、サーバー バックグラウンド リスニング インターフェイスを使用します。固定使用法、暗記 public class autoRun implements ServletContextListener { //バックエンドが初期化されるとき、つまりTomcatの起動イベントが発生すると、使用法が固定されます。public void contextInitialized(ServletContextEvent arg0){ //ここで実行する必要があることを記述しますSystem.out.println("MainFunction が実行中です。"); mainGame.main(null); } //バックエンドが破棄される、つまりTomcatが閉じられる場合、使用法は固定です。public void contextDestroyed(ServletContextEvent arg0){ //ここに実行内容を記述します} } ご覧のとおり、Tomcat の起動とシャットダウンの状態を監視する部分は 2 つあります。
もちろん、閉鎖されており、今すぐに何か行動を起こす必要はありません。起動後にゲームのメイン機能を実行するだけです。そこで、メイン関数をスタートアップに配置しました。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
mysql ストレージ エンジン: MySQL サーバーはモジュール スタイルを採用しており、特にス...
MongoDB を起動すると、プロンプトは次のようになります。共有ライブラリのロード中にエラーが発...
1. サーバーのセットアップリモート リポジトリは実際にはローカル リポジトリと何ら変わりなく、純粋...
要素にクラスを追加/削除することは、プロジェクト開発では非常に一般的な動作です。たとえば、Web サ...
この記事では、MySQL の sql_mode モードについて例を挙げて説明します。ご参考までに、詳...
Mysqlはブール型を設定します1. Tinyintタイプテストテーブルを作成し、blフィールドをブ...
01. 無限フォントのダウンロード02. バンダフォントのダウンロード03. ロールアップフォントの...
この記事では、参考までに、Vue の具体的なコードを共有して、簡単なショッピングカートを実装します。...
序文Docker と VS Code を使用すると、ローカル開発環境全体を最適化し、プロジェクトの進...
ダウンロードダウンロードアドレス: https://dev.mysql.com/downloads/...
この記事では、CentOS 7 で高可用性 Hadoop 2.10 クラスターを構築する方法を紹介し...
<br />言葉は、人間の思考や感情を伝えるために必然的に生み出されるものです。人類の文...
Nginx グローバル変数Nginx には、$variable 名を通じて使用できるグローバル変数が...
これは、Web ページを Windows のスタート メニューなどのデスクトップ プログラムのように...
ARGB は、アルファ (透明度) チャネルが追加された RGB カラー モードであり、32 ビット...