0

JXTA のようなフレームワークを使用しない p2p アプリケーションを開発する必要があります。StackOverflow でさまざまなトピックを検索しましたが、必要なものが得られません。クライアントとそのリソースのリストを管理するサーバーがあります。クライアントはサーバーに連絡して、どのクライアントが何を持っているかを調べます。クライアントがサーバーからこの情報を取得した後、他のクライアントとの p2p 接続を確立します - サーバーはこれに関与しません。

同じプログラムでクライアントソケットとサーバーソケットを作成する方法について知る必要があります。つまり、プログラムはサーバーとクライアントのようにする必要があります。私を助けてください。

for ex:
 client code 
 Socket clientSocket = new Socket("localhost", 10000);

 server code
 ServerSocket welcomeSocket = new ServerSocket(10000);

     while(true)
     {
        //client socket
        Socket connectionSocket = welcomeSocket.accept();
        .......
        .......
     }

サーバーソケットをクライアントに追加してサーバーのように動作させるにはどうすればよいですか? スレッドを使用する必要があることはわかっていますが、これについて詳しく説明できる人はいますか? または、関連するスレッドを投稿してください..さまざまなフォーラムやウェブサイトを見るのにうんざりしています..

4

1 に答える 1

1

スレッドとIOに関してネットワークコードを書く方法は実際にはたくさんあります(http://www.kegel.com/c10k.htmlを参照)。従来の方法は、Javaチュートリアルの下部で説明されているように、各接続を処理するスレッドを作成することだと思います。接続が確立され、何かを実行してから閉じられれば、これはまったく問題ありません。

ただし、接続を常に開いたままにしておくと、スレッドとオーバーヘッドが多すぎる可能性があります。したがって、他のアプローチ。

また、一般的なJavaネットワークライブラリの使用を検討する必要があります。独自のプロトコルと通信モデルを実装できますが、それでも労力を節約でき、おそらくより良いコードになります。

于 2012-09-18T07:28:58.307 に答える