2017-02-21 6 views
0

DiscoverAsync 메서드를 사용하려고하지만 몇 가지 문제가 있습니다. 이건 내 코드입니다 :Discoverer.DiscoverAsync는 e.Agent.Address로 "0.0.0.0"을 반환합니다.

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"를 반환,하지만 난 내 코드를 생각한다 내가 연결된 3 대의 프린터의 ID를 발견하기 때문에 정확합니다. 필자는 10.0.0-beta1을 제외하고 여러 버전의 라이브러리를 테스트했습니다. 신청할 때 IP 주소가 필요합니다. 어떤 도움을 주셔서 감사합니다.

감사합니다.

PD : "IPAddress.Broadcast"또는 "255.255.255.255"로 소켓 예외가 발생하므로 "192.168.1.255"를 사용하고 있습니다.

+0

당신에게 시험 9.0.7나요? 10.x는 현재로서는 사용되지 않습니다. –

+0

예. 나는 9.0.7을 시도했다. 어떤 이유로 UWP에서 컴파일되지 않지만 해당 버전에서도 "0.0.0.0"을 얻습니다. –

답변