2012-03-28 19 views
1

私はこのゲームボットを作成してゲームに接続し、再生を開始します。 私の問題は、他のものがうまく動作しないため、これらのうちの1つ以上を開始できないことです。複数のJavaソケット接続

私は同じプログラムの2つのインスタンスを実行すると、ソケットがお互いに干渉している可能性はありますか?結局、彼らは同じポートで同じIPに接続しますか?

時には私はクローズ(ちょうどcmdを閉じる)した後、プログラムは再び接続することができません。それは私が接続を右に閉じなかった原因ですか? 私はこれだけで十分で、私はソースコードを投稿しなければならないことを願っています。

よろしくお願いします。

+0

それ自身のスレッドで実行それぞれ「ボット」を作ります。これにより、あなたのプログラムは同時に複数のことを行うことができます。ちょうどgoogle "スレッドjava"とあなたは必要なすべての情報を取得します –

+0

なぜ複数のクライアントを起動することはできませんか?エラーが記録または表示されていますか?それはあなた自身のゲームですか、それとも何ですか?このフォーラムは、ソースコードやそれに類することが多い、具体的なプログラミングに関する質問のためのフォーラムです。一般的な "なぜ私のプログラムの仕事はしない"タイプのサポート。質問のガイドラインについては、http://stackoverflow.com/faqを参照してください。 – pap

答えて

1

特定のTCPポートを使用している場合、このポートを一時的に要求できないクローズ待機期間があります。複数のプログラムが同じTCPポートを受信することもできません。スレッドを使用する。

1

同じソケット/ポートに複数回接続することは可能です。実際には、ソケットはダブルピアです:{クライアントIP /クライアントポート} {サーバIP /サーバポート}。サーバーに接続すると、クライアントポートが動的に割り当てられます。クライアントごとに異なる新しいクライアントポートが用意されています。したがって、サーバ側がそれを禁止しない限り、動作するはずです。

1

複数の接続をリッスンするサーバーが必要です。サーバーがポートにバインドされていて、そのポートが使用中であれば、別のアプリケーションはそのポートを使用できません。だからサーバーのために1つのインスタンスがあります。サーバが複数の接続を受け入れる限り、複数のクライアントがこのIP /ポートに接続できます。

クライアントがサーバーに接続し、他のクライアントが機能しなくなった場合は、サーバーが複数のクライアントをサポートしていない可能性があります。これを行うには、サーバーでマルチスレッドを使用する必要があります。サーバーはクライアントソケットを受け入れ、独自のStreamReader/Writerオブジェクトでクライアントの新しいインスタンスを作成する必要があります。

http://tutorials.jenkov.com/java-multithreaded-servers/multithreaded-server.html

+0

私はサーバーにアクセスできません。またはソースコード。しかし、それはゲームなので、私はそれが複数の接続を受け入れることを確信しています。私の問題は、クライアントが複数のインスタンスに接続しないことです。私は10xのクライアントを自分のコンピュータから実行したいと思っていますが、 –

+1

サーバ側の接続が制限されることがあります。私。 IPアドレスごとに1スレッド。サーバーに送信するコマンドが分かっている場合は、Telnetの複数のインスタンスを開き、サーバーに接続してみてください。このように動作する場合は、コードでなければなりません。そうでない場合、サーバーは複数のクライアントとの接続を停止します。 –