1

Python 用の WSDiscovery モジュールを使用しています。ネットワーク上のサービスを検索できました。クライアントを発見し、これから XAddress を取得しようとしています。WSDiscovery モジュールにはドキュメントがほとんどありません。実際には、数行の長さのモジュールの readme ファイルにあるのはほんのわずかです。この特定のコードを以下で動作させることができました:

import WSDiscovery
from WSDiscovery import WSDiscovery

def printService():
    wsd = WSDiscovery()
    wsd.start()
    services = wsd.searchServices()
    for service in services:
        try:
            print service.getEPR() + ":" + str(service.getXAddrs())
            print service.getTypes()
        except:
            print "Error with "+service.getEPR()

    wsd.stop()

これはすべてのサービスを取得し、次を使用してさまざまな XAddresses を取得できます。

service.getXAddrs()[0]

しかし、特定のIDを持つものを特に探しています。アドレスの 1 つは次のようになります。

4yr8343-r48d-3ref-4fsw-5r4tw432:[u'http://10.10.10.10:5321']

たとえば、このID番号を持つアドレスを選択するための提案を誰でも思いつくことができますか?

ありがとう

4

1 に答える 1

1

ソースを見ると、それがわかります

1. searchServices 署名にはいくつかのパラメーターがあります。

def searchServices(self, types=None, scopes=None, timeout=3)

そして、types\scopes によるフィルタリングが役立つとは思いませんね。

2. service CLASS には次のパラメータがあります。

class Service:

def __init__(self, types, scopes, xAddrs, epr, instanceId):
    self.__types = types
    self.__scopes = scopes
    self.__xAddrs = xAddrs
    self.__epr = epr
    self.__instanceId = instanceId
    self.__messageNumber = 0
    self.__metadataVersion = 1

私が見る限り、あなたができる唯一のことは、searchServicesによって取得されたサービスを繰り返し処理し、利用可能な属性の1つによってフィルタリングすることです.

于 2010-03-31T14:36:15.897 に答える