1

サーバーと複数のクライアントを使用してアプリケーションを構築することを計画しています。クライアントが初めてサーバーに接続するとき、ID を指定する必要があります。クライアントが要求を送信するたびに、サーバーはクライアントに一連の文字列を送信します。次に、クライアントはこれらの文字列を処理し、処理が完了すると、サーバーに別の文字列セットの要求を再度送信します。文字列はサーバー上のデータベースに存在します。

文字列を処理するクライアント プログラムの一部を実装しましたが、サーバーとクライアント間の通信を実現する方法がわかりません。

私は python.I を使用してこのアプリケーションを開発しています。ネットワーク プログラミングがわからないため、これを機能させる方法がわかりません。

ソケットプログラミングとメッセージ指向ミドルウェア、メッセージキュー、メッセージブローカーに出くわしましたが、それが必要かどうかわかりません。何を使用する必要があり、これを機能させるためにどのトピックを学ぶ必要があるか教えてください.私が曖昧に聞こえないように。

4

2 に答える 2

0

低レベルのソケットのものを書く代わりにプロキシオブジェクトを操作できるXML-RPCプロトコルを検討する必要があると思います。

Pythonには、それを実装する標準ライブラリに2つのモジュールが付属しておりxmlprclib、クライアントをSimpleXMLRPCServer実装し、サーバーを実装します。python3では、名前がとに変更されましxmlrpc.clientxmlrpc.server

両方のモジュールには、いくつかの使用 が付属しており、それらを機能させる方法についてのアイデアが得られる可能性があります。

特に、サーバーは、新しいクライアントIDを返すそのクライアントを登録する関数と、文字列を処理して結果を返す関数を公開し、クライアントはプロキシオブジェクトでそのメソッドを呼び出すだけです。実装は非常に簡単なはずです。

于 2013-02-16T10:42:39.543 に答える
0

beanstalkdのようなものを使用することをお勧めできますか。

そうすれば、「文字列」をキューにプッシュするサーバーを作成でき、1 つまたは複数のクライアントがそのキューから「文字列」をプルして処理し、完了したら別の「文字列」を取得できます。

この方法でキューを使用する方が、ソケットなどを作成するよりも簡単だと思います。

彼らのウェブサイトから例を取っているだけです。

サーバ?

>>> import beanstalkc
>>> beanstalk = beanstalkc.Connection(host='localhost', port=14711)
>>> beanstalk.put('hey!')
1

クライアント?

>>> job = beanstalk.reserve()
>>> job.body
'hey!'
>>> job.delete()

「リクエスト」、「結果」、「エラー」キュー (チューブ) を作成する機能により、非常に簡単に使用できます。

あなたの目的には合わないかもしれませんが、心に留めておくべきことです。

于 2013-02-16T11:07:01.383 に答える