私の最初のサーバープログラム 現在、オンラインゲームの書き方を学んでいるので、サーバーサイドのプログラムを書く必要があります。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 を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
HTML の img タグで画像の中心を表示する方法は、現在 3 つあります。ここで記録しておきま...
みなさんこんにちは。私は技術の話ばかりして髪を切らない先生のトニーです。何らかの歴史的な理由や誤操作...
Centos のサーバー側への適用がますます普及するにつれて、Centos7 もますます使用されるよ...
とあるサイトからレンタルした仮想マシンの有効期限が近づいており、更新料が200元以上かかります。Al...
目的nextTickの役割といくつかの簡単な使用シナリオを理解する文章その機能は何ですか?遅延コール...
nginx は弊社で最もよく使用されるサーバーで、コンテンツ配信やリバース プロキシによく使用されま...
1|0 背景プロジェクトの要件により、各月の履歴在庫データをアーカイブしてバックアップする必要があり...
この記事では、アンカー配置を実現するためのVue +要素UIの具体的なコードを例として紹介します。具...
目次最初のステップ: 2 番目のステップは、request.js で関連する構成を行うことです。re...
導入データベースに接続するためにJDBCを使用することに慣れている場合は、データベースに接続するため...
目次1. 関数シグネチャ2. 関数のオーバーロード2.1 オーバーロードされたシグネチャは呼び出し可...
基本概念絶対配置: 絶対配置に設定された要素ボックスはドキュメント フローから完全に削除され、その包...
MySQL のトランザクションはデフォルトで自動的にコミットされます (autocommit = 1...
「Tik Tok」も大人気で、ユーザー数は7億人と言われています。今日は、注目を集めるためにTikT...
今夜の夕食後にノートパソコンの電源を入れたところ、問題が発生しました。通常、コンピューターがスリープ...