0

我正在尝试使用 DiscoverAsync 方法,但遇到了一些麻烦。这是我的代码:

    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

如您所见,它返回“0.0.0.0:0”作为代理端点,但我认为我的代码是正确的,因为它发现了我连接的三台打印机的 ID。我已经测试了该库的多个版本,包括 10.0.0-beta1。对于我的应用程序,我需要 IP 地址。我会感谢你在这方面的任何帮助。

问候!

PD:我正在使用“192.168.1.255”,因为它会抛出一个带有“IPAddress.Broadcast”或“255.255.255.255”的套接字异常。

4

1 回答 1

0

这已被确定为错误并在 9.2.1 版中修复,

https://github.com/lextm/sharpsnmplib/releases/tag/9.2.1

于 2017-11-10T05:15:59.430 回答