我正在尝试使用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“。
发布于 2017-11-10 13:15:59
这已被标识为a bug,并已在版本9.2.1中修复。
https://stackoverflow.com/questions/42375181
复制相似问题