Java를 사용하여 네트워크에서 실행중인 테스트라는 SLP 서비스를 찾고 연결을 생성하려고합니다. 서비스가 실행 중이고 "slptool findsrvs service : test"명령을 사용하여 찾을 수 있습니다. 이 명령은 "service : test : //192.168.1.4 : 12345,65535"를 리턴합니다. 다음 코드 그러나 :IP_MULTICAST_IF로 인해 SocketException이 발생하는 SLP Java 함수
import java.util.Locale;
import ch.ethz.iks.slp.*;
public class OpenConnection {
public static void main(String[] args) throws ServiceLocationException {
Locator locator = ServiceLocationManager.getLocator(new Locale("en"));
ServiceLocationEnumeration sle = locator.findServices(new ServiceType("service:test"), null, null);
System.out.println("Looking up ...");
System.out.println(sle.nextElement());
while (sle.hasMoreElements()) {
ServiceURL foundService = (ServiceURL) sle.nextElement();
System.out.println(foundService);
}
System.out.println("Finished.");
}
}
다음과 같은 출력이 생성
java.net.SocketException: bad argument for IP_MULTICAST_IF: address not bound to any interface
at java.net.PlainDatagramSocketImpl.socketSetOption(Native Method)
at java.net.AbstractPlainDatagramSocketImpl.setOption(AbstractPlainDatagramSocketImpl.java:299)
at java.net.MulticastSocket.setInterface(MulticastSocket.java:448)
at ch.ethz.iks.slp.impl.SLPCore.<clinit>(SLPCore.java:279)
at OpenConnection.main(OpenConnection.java:7)
Looking up ...
null
Finished.
내가 널 있으리라 믿고있어 인한 로케이터의 실패에 인쇄 sle.nextElement() 문 인쇄됩니다 찾아 라인 7 :
는Locator locator = ServiceLocationManager.getLocator(new Locale("en"));
은 IP_MULTICAST_IF에 대한 나쁜 인수가이 발생할 수 이유 그래서 제 질문은 아는 사람 있나요이며 어떻게 그것을 해결하기 위해? 누군가가 IP_MULTICAST_IF 이외의 문제를 일으킬 수있는 것을 보게되면 언제든지 지적 해주십시오.
우분투 11.04에서 JavaSE-1.6, jslp-0.7.1 및 commons-loggin-1.1.1 라이브러리를 사용하고 있다는 것을 알면 도움이 될 것입니다.