私はPythonの初心者で、wxpythonを使用して、ローカルマシンで特定の操作を行うGUIモデルを作成しました。そのツールがリモートクライアントから複数のローカルシステムで動作するようにしたい。私はいくつかのドキュメント(python:Networking)を通過しましたが、理解できませんでした:(。私の要件は、ユーザーが各(任意の数のマシン)マシンのIPアドレスとポート番号を提供する必要があることです。誰かが私にPythonで解決策を提案してください?私は過去3日間からそれを試しています。
2 に答える
数年前に同じ問題が発生し、Python Pyro(http://pythonhosted.org/Pyro4/)で解決しました。これは、オブジェクトがネットワークを介して相互に通信できるアプリケーションを構築できるライブラリです。 、最小限のプログラミング作業で簡単に。
クライアント/サーバークライアント/クライアントなどを使用して、リモートネットワークコンピュータで「何か」を実行したり「何か」を実行したりできます。
たとえば、message
を1台のPCに送信したり、を送信したり、リモートでFile
実行したりする必要がある場合などです。class
完全な例:
サーバ
# saved as greeting.py
import Pyro4
class GreetingMaker(object):
def get_fortune(self, name):
return "Hello, {0}. Here is your fortune message:\n" \
"Tomorrow's lucky number is 12345678.".format(name)
greeting_maker=GreetingMaker()
daemon=Pyro4.Daemon() # make a Pyro daemon
ns=Pyro4.locateNS() # find the name server
uri=daemon.register(greeting_maker) # register the greeting object as a Pyro object
ns.register("example.greeting", uri) # register the object with a name in the name server
print "Ready."
daemon.requestLoop() # start the event loop of the server to wait for calls
クライアント
# saved as client.py
import Pyro4
name=raw_input("What is your name? ").strip()
greeting_maker=Pyro4.Proxy("PYRONAME:example.greeting") # use name server object lookup uri shortcut
print greeting_maker.get_fortune(name)
まず、サーバーを実行する必要があり(たとえば、IPローカルなどで)、要求を待機します。次にクライアントを実行すると、サーバーがどのように機能するかを確認できます(接続先、IPサーバー[またはドメイン]を知っている必要があります)
サーバー上ですべてを実行し、ネットワークまたはインターネット上の他のPCから呼び出すことができます。
アプライアンスにとって非常に便利です。
お役に立てば幸いです。
(ドキュメントリンク: http: //pythonhosted.org/Pyro4/intro.html#simple-example)
これに対する唯一の解決策はありません。
クライアントサーバーモデルを使用する必要があります。クライアントは現在のクライアントと同様になり、サーバーがこれを制御します。ネットワーキングについてはTwistedを調べてください。おそらく、rawソケットよりも簡単です。
そのボックスにアクセスせずにリモートコマンドを実行する方法はありません。
よろしく