我正在尝试使用 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”的套接字异常。