問題タブ [java-server]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Android-Javaサーバーまたはサーブレット?
大学のプロジェクト用のAndroidアプリケーションを作成しています。
大学のサーバーでいくつかのデータベースをホストします(Web開発サーバーがあります)。
私はJavaサーバーを作成しようとしていましたが、大学のファイアウォールやその他のセキュリティメカニズムが大学でホストされている場合、(スマートフォンからの)リモート接続を許可しませんでした。私は、Web開発自体にJavaを使用して全体を学習しながら学んでいます。
Webサーバーを使用して、電話アプリケーションからの要求を処理し、データベースからデータをフェッチして操作し、電話に応答を送り返すことができるようにしたいと考えています。
サーブレットでこれを行うことはできますか?そして、これをWeb開発サーバーでホストしますか?
java - サーバーで実行するjax-rsコード
RESTFulを使用するコードがあります:
私の質問は、ブラウザからこのコードを実行する方法ですか?このコードをEclipseで記述し、ブラウザーから実行したいと思います。どうやってやるの?ありがとう。
java - antスクリプトを介してJavaサーバーを実行しようとしているときに、要求されたアドレスを割り当てることができません
クライアントを構築できるように、割り当てのantタスクを介してコンパイル済みのJavaサーバーを実行する必要があります。サーバーのコードはありませんが、起動後にローカルホストの8181ポートで実行されるはずです。Windowsや他のLinuxマシンで動作していますが、これでは実行できません(crunchbang)。これは私が得るエラーです:
私が試したこと:
- そのポートで実行されている別のサーバーがあるかどうかを確認する
- suとして実行します
java - サーバー プログラムでのブロック書き込みの克服
長いテキストの壁を前もってお詫び申し上げます。
私はゲームサーバーを書いています。基本的に、接続を受け入れるスレッド、各プレイヤー用の個別のスレッド、およびすべての更新を処理するスレッドがあります。個々のプレーヤー スレッドの唯一の責任は、実際のクライアントに対してパケットを読み書きすることです。すべての I/O は古き良きjava.io
パッケージを使用して行われることに注意してください。
とにかく、いくつかのコンテンツを書き終えたとき、ある種のストレステストを実行したいと決めました. そこで、友人にボット フラッディング プログラムを送信しました。このプログラムは、偽のプレイヤーをサーバーにすばやく接続します。ローカルで実行するよりも、接続がローカルでない方が現実的であると考えました。テストからわかったことは、プレーヤーの更新サイクル タイムが非常に優れていることでした。ただし、約 200 人のプレーヤーが接続されると、サイクル タイムが劇的に急増し始めます (15 ミリ秒から9000 ミリ秒を超えることもあります)。)。最初は、アクセプタ スレッドに関係しているのではないかと考えていました。サイクルが遅くなると、「A player has connected from ...」というメッセージを受け取る頻度が減っていることに気付いたからです。しかし、更新サイクルの個々のステップにかかる時間を測定することにした後、それが原因ではないことがわかりました。ボトルネックはプレーヤーの更新でした。プレイヤーの更新方法を一番下までスクロールしたところ、すぐに原因がわかりました。
問題は、各プレーヤーの更新の最後に、更新パケットが送信されることです。サイズが数キロバイトになることもある大きなパケットは、構築されると、ソケットの出力ストリームを介して送信されます。多くの人が知っているように、パケットの書き込みはブロッキング操作です。そして、そのブロッキングが、一見ランダムに見えるサイクル タイムのスパイクの原因でした。数百人のプレーヤーが接続すると、サーバーはそれらすべてのプレーヤーを更新しようとします。ただし、場合によっては、接続の 1 つが少し遅くなることがあります。したがって、サーバーは、遅いソケットを介して接続されたプレーヤーを処理しようとするまで、プレーヤーを処理し続けます。更新パケットを作成すると、それを送信しようとします。ただし、ソケットが遅いため、送信は長時間ブロックされます。送信操作がブロックされている間、他のプレーヤーは更新されていません。その結果、サイクルに非常に長い時間がかかる場合がありました。
今、私はこの問題にアプローチする方法に行き詰まっています。理想的な状況は、サーバーがパケットを作成し、そのパケットを個々のプレーヤー スレッドに渡し、それを送信する (そして、独自の小さなスレッドで楽しくブロックする) ことです。更新パケットが構築されると、サーバー スレッドは更新パケットを格納し、パケットが構築されたことを知らせる何らかのフラグを立てる可能性があります。これは問題ないように思えますが、問題は、多くの場合、個々のプレーヤー スレッドが独自のブロック操作に巻き込まれることです。パケットの受信を待機しているため、プレイヤー スレッドがブロックされています。したがって、更新パケットは読み取りによるブロックが完了すると書き込まれますが、更新パケットが実際に構築された後に送信されるのではないかと心配しています。これにより、プレーヤーが遅れているように見えます。
そこで、皆さんに提案をお願いします。この問題にどのように取り組みますか? 誰かが私に NIO を使用することを勧めましたが、それではコードの大部分を書き直す必要があるため、別のルートを取るため、可能性を使い果たしたいと考えています。
java - Javaの複数サーバーTCP
プレイヤーが独自のクライアントを使用し、サーバーがすべてのデータ処理を処理する、ネットワーク化されたマルチプレイヤーゲームを作成しています...
1つのサーバーでゲームの書き込みを終了しました。
私がやりたいことは、さまざまなゲームルームに関する情報を送信するメインサーバーを用意し、プレーヤーが必要なゲームルームに接続できるようにすることです。
私が念頭に置いているのは、プレーヤーが新しいゲームルームのセットアップをクリックすると、クライアントはサーバーに新しいゲームをセットアップするように指示し、新しいサーバーを作成してそのサーバーに関する情報をメインサーバーに追加することです.
私はセカンダリサーバーを維持していArrayList
ます...
そのようにすると、最初は新しいサーバーを起動しましたが、コンソールに出力する状態にはなりません。
メインサーバーから新しいサーバーを作成するのを手伝ってください:)
java - ダーツゲームのAndroidアプリとJavaサーバーで飽きない
私の質問は、必ずしもこれを行う方法についてではありません。むしろ、どこから始めればよいか知りたいのです。ダーツ ゲームを追跡するプログラムを Java で作成しました。コアDartGame
クラスと、それを継承するさまざまなゲーム用のクラスがあります。そこから、プレーヤー、順番、現在のスコアなどを追跡します。これはうまく機能し、私がやりたいことは Android アプリにすることです。私のコンピューターには、実行中のアプリをリンクするサーバー プログラムがあります。VPN サーバーにお金を使いたくないので、どこからでもアクセスできるグローバル サーバーは必要ありません。そのため、サーバー プログラムは自分の PC で実行されるだけです。同様のタイプのサーバーの例としては、Android デバイスを搭載した PC でカーソルを制御できる AndroMouse に使用されるサーバーが挙げられます。
デバイスから PC に接続する最良の方法は何ですか? MAC アドレスを使用しているのか、ルーターからの WIFI を使用しているのか、あるいは Bluetooth がオプションであるかどうかはわかりません。私はAndroidにあまり詳しくありませんが、ある種のサーバー/サーバーソケット接続があると思いますが、それにはIPアドレスが必要で、どれを使用すればよいかわかりません。ルーターからローカル IP を使用するのと同じくらい簡単ですか? 私が言ったように、私は自分でそれを行う方法を学びます.Androidの本にたくさんのお金を使う前に、何を学ぶ必要があるか知りたい. 前もって感謝します。
java - サーブレットを介して mysql データベースを更新できない
サーブレット ファイルSignUp.javaとヘルパー ファイルUpdater.javaを作成しました。SignUp は、ユーザーが入力したフォームからユーザー情報を収集します。次に、その情報を Updater に送信して、Updater がその情報を使用してデータベース内のテーブルを更新できるようにします。しかし、フォームに入力して [送信] をクリックしても、何も変わりません。奇妙なことに、テスト ファイルを作成し、それを使用して Updater にダミー値を指定すると、それらのダミー値でテーブルが更新されました。-SignUp.java _
InfoHolder は情報を保持するだけです。
アップデータ.java
test.java
アップデータ クラス ファイルがスローし続ける - java.lang.ClassNotFoundException: com.mysql.jdbc.Driver. しかし、ターミナルからテスト クラス ファイルを実行すると、同じ Updater クラスがスムーズに実行されます。
私のCLASSPATH変数に問題がありますか:
この値があります - .:/usr/share/java/mysql.jar:/usr/share/java/mysql-connector-java-5.1.16.jar:/usr/lib /tomcat6/lib/servlet-api.jar:classes.
助けてください。
hibernate - JavaでWebサーバー上のアプリケーションとアプリケーションをオフラインエントリと同期させる方法は?
**> Java 技術を使って Web システムを作る必要がありますが、
インターネット切断の問題。また、そのシステムのデスクトップ バージョンを作成する必要があります... ユーザーがシステムでエントリを実行できる場所。私の要件は、ユーザーがボタンをクリックするか、営業日の終わりに何らかの機能を実行し、ユーザーが過去 1 日に行ったすべてのエントリを Web システムでオンラインで更新する必要がある場合です。ユーザーは Web システムで再度入力しないでください。**
Javaテクノロジーを使用してこの機能を実現する方法がわかりません...
この Web システムの開発には、Java Hibernate と Java Vaadin Framework を使用しています。
親切に私を助けてください。よろしくお願いします。:)
java - サーブレットJavaで文字列をMysqlタイムスタンプに変換します
こんにちは、Apache サーブレットで get メソッドを使用して日時文字列を渡しています。
そして私は使用しています
日付値を取得するには.....
文字列をタイムスタンプに変換する私のJavaコードを以下に示します
しかし、それはこのようなエラーを示しています
私は何か間違ったことをしていますか?
java - Java QuickServer オブジェクト ハンドラ
最近、Java マルチスレッド サーバー用のオープン ソース ライブラリhttp://www.quickserver.org/を見つけました。ClientCommandHandler を使用する最初の例の EchoServer は完璧に機能しました。ただし、文字列でのみ機能します。私の特定のアプリケーションでは、特別なカスタム オブジェクトを使用して、サーバーとクライアントの間でメッセージを交換したいと考えています。
私は次のことを試しました:
...そして、これをオブジェクト ハンドラとして設定します...
したがって、私がこれでやろうとしていたことは、コマンド ハンドラーをオブジェクト ハンドラーに完全に置き換えることです。次のエラーが表示されます。
だから私の質問。コマンド ハンドラーをまったく定義せずに、コマンド ハンドラーをオブジェクト ハンドラーに置き換えることは可能ですか? そうでない場合、オブジェクト ハンドラーを実装する適切な方法は何ですか?