私の最初のサーバープログラム 現在、オンラインゲームの書き方を学んでいるので、サーバーサイドのプログラムを書く必要があります。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 を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
Vue ファースト スクリーン パフォーマンス最適化コンポーネントVue ファースト スクリーン パ...
rpmインストールパッケージを使用してmysqlをオフラインでインストールします。参考までに準備:公...
序文: Vue3 がリリースされてからかなり経ちますが、最近、会社のプロジェクトでVue3 + Ty...
同じサーバーで、Docker を使用して Mysql のマスター スレーブ同期設定をシミュレートしま...
目次v-model 入力で双方向バインディングデータを使用するコンポーネント内の v-model他の...
1. parseFloat() 関数Web ページ上に簡単な計算機を作成し、テキスト ボックスに ...
目次不変の値とは何ですか?不変の値を使用するのはなぜですか? Reactのパフォーマンス最適化は不変...
目次1. ファイルをインポートする2. HTMLページ3. メインコード4. 画像をbase64に変...
この記事では、例を使用して、MySQL の日付と時刻の間隔計算について説明します。ご参考までに、詳細...
目次1. はじめに2. 設定手順1. はじめに1. NAT モード (VMnet8) は、仮想マシン...
1. プロジェクト文書 2. ページレイアウトにHTMLとCSSを使用するHTML部分 <di...
Vue での v-on:clock の使用現在、vue.js フレームワークを学習しています。後で参...
環境の準備1. 環境構築React Native 中国語ウェブサイト2. 開発ツール フロントエンド...
JDKをダウンロードしてインストールするステップ 1: まず、公式 Web サイト http://...
1. エラーの再現MySQL データベースにはアクセスできますが、データベース テーブルを読み取るこ...