2017-02-21 106 views
0

我試圖使用DiscoverAsync方法,但我有一些麻煩。這是我的代碼:Discoverer.DiscoverAsync返回「0.0.0.0」作爲e.Agent.Address

private void button1_Click(object sender, EventArgs e) 
    { 
     asyncMethod(); 
    } 
    private async void asyncMethod() 
    { 
     Discoverer disc = new Discoverer(); 
     disc.AgentFound += DiscovererFound;    
     await disc.DiscoverAsync(VersionCode.V1, new IPEndPoint(new IPAddress(new byte[] { 192,168,1,255}), 161), new OctetString("public"), 6000); 
    } 
    private void DiscovererFound(object sender, AgentFoundEventArgs e) 
    {    
     Console.WriteLine(e.Agent + ":" + e.Variable.Data); 
    } 

這是輸出:

0.0.0.0:0:RICOH Aficio MP C300SR 2.09/RICOH Network Printer C model/RICOH Network Scanner C model 
0.0.0.0:0:RICOH Aficio MP 301 1.06/RICOH Network Printer C model/RICOH Network Scanner C model/RICOH Network Facsimile C model 
0.0.0.0:0:RICOH Aficio MP 2851 1.01/RICOH Network Printer C model/RICOH Network Scanner C model 

正如你所看到的,It's返回「0.0.0.0:0」作爲代理的端點,但我認爲我的代碼是正確的,因爲它發現了我連接的三臺打印機的ID。我測試過該庫的多個版本,包括10.0.0-beta1。爲了我的應用程序的目的,我需要IP地址。我會感謝你的幫助。

問候!

PD:我使用的是「192.168.1.255」,因爲它引發了一個帶有「IPAddress.Broadcast」或「255.255.255.255」的套接字異常。

+0

你測試9.0.7? 10.x現在已經過時了。 –

+0

是的。我已經嘗試過9.0.7。由於某些原因,它不能在UWP中編譯,但是我也獲得了該版本的「0.0.0.0」。 –

回答