2012-01-20 4 views
2

私が作成したアプリケーション内に埋め込みWebサーバーを開発しようとしています。基本的には、単純なWebサーバー(ServerSocketを利用する)を作成し、次にメインプロセス(理論上)がビジネスになるという主要プロセスを持っています。前述の擬似コードでサーバー以外のアプリケーションにServerSocketsを埋め込む

Main(){ 
    doingStuff(); 
    WebServer server = new WebServer(); 
    server.run(); 
    doingMoreStuff(); 
} 

public class WebServer implements Runnable{ 
    ServerSocket inbound; 

    //constructor 
    WebServer(){ 
     inbound = new ServerSocket(9687); 
    } 

    public void Run(){ 
     Socket client; 

     while(true){ 
      client = inbound.accept(); 
      SomeClass threadedClassThatHandlesClientMessage = new SomeClass(client); 
      someclass.run(); 
     } 
    } 
} 

、IはServerSocketを持つスレッドがウェブサーバークラスのスレッドならびにメインスレッドを停止、()コール・ブロックを受け入れることを知っています。私が紛失しているものはありますか?

私は、別々のプロセスとして連携して実行できる2つのプログラムを作成できることは知っていますが、私はIPCを避け、1つのスレッドでデータ処理を行い、別のスレッド。私はまだこのすべてに新しいですが、これは私が見落とした単純なものの1つであることはかなり確信していますが、私が提供できる援助は大変ありがとうと思います。

答えて

2

Runnable.run()を呼び出すと、新しいスレッドで実行されず、現在のスレッドで実行されます。

new Thread (server).start()を意味しましたか?

+0

ああ、私はそれを完全に忘れていました。私はrunnableインターフェイスを利用するのではなく、単にThreadクラスを拡張していました。それはあなたのためにJavaを使用していない年です。 ありがとう! – DigitalGoetz

関連する問題