2012-01-12 17 views
0

2種類のクライアントからの要求を受信するマルチサーバースレッドを作成します。 AとB. クライアントAが要求を送信すると、サーバーはBからの要求を受信したときにサーバーがいくつかのタスクを実行する必要があります。私は2つの異なるタイプのサーバ、あるいは明らかに異なるメソッドrun()を持つ2つの異なるタイプのスレッドを実装する必要がありますか?2種類のクライアントのマルチサーバースレッド

+0

あなたの質問は何ですか? – Poindexter

+0

リクエストはリクエストであり、どのタイプのクライアントから来ているかは関係ありません。 – ligerdave

+0

私は2つの異なるタイプのサーバクラスを実装しなければならないか、2つの異なるタイプのスレッドを明示的に異なるメソッドrun()で実装する必要があります。 – Mazzy

答えて

0

私はあなたがinterfaceを使用し、ServerClasses

IEでそれを実装することをお勧めします、

interface BasicServer{ 
    void performClientTasks(); 
} 

は、今すぐあなたのServerClassesでこれを実装する

class YourFirstServer extends ..... implements BasicServer{ 

.......... 
void performClientTasks(){ 
//STUFF FOR FIRST SERVER 
} 

今すぐ次のサーバ・クラス

class YourSecondServer extends ..... implements BasicServer{ 

.......... 
void performClientTasks(){ 
//STUFF FOR Second SERVER 
} 

今、あなたが望むとき、すなわち、

BasicServer myserver; 

今すぐ正しいオブジェクトを割り当てる:::

if(CLIENT1_IS_THERE){ 
//ACTIVATE FIRSTSERVER 
myserver = new YourFirstServer(); 
} 
else 
{ 
//NOW CLIENT2 IS THERE.SO ACTIVATE SECONDSERVER 
myserver = new YourSecondServer(); 
} 

を今、あなたはタスク

を実行したいとき...あなたがオブジェクトをしたいインタフェースの参照を保持私はそれが実行method..then中だったと思う

void run(){ 

//JUST CALL 
myserver.performClientTasks(); 
} 

この呼び出しは、performClientTasks()メソッドがmyserver内のオブジェクトに従って動作するため、正常に動作します。

あなたはinterfaceに追加し、あなたが望む限り多くのメソッドを実装することができます...私はちょうどあなたにサンプルを与えた...しかし、あなたはイタリック体のラインが

希望これはあなたを助けるかもしれないことを覚えておいてください。..