public static MulticastSocket createMulticastSocket(SocketFactory factory,String service_name,InetAddress mcast_addr,int port,Log log) throws IOException { if(mcast_addr != null && !mcast_addr.isMulticastAddress()) throw new IllegalArgumentException("mcast_addr (" + mcast_addr + ") is not a valid multicast address"); SocketAddress saddr=new InetSocketAddress(mcast_addr,port); MulticastSocket retval=null; try { retval=factory.createMulticastSocket(service_name,saddr); } catch(IOException ex) { if(log != null && log.isWarnEnabled()) { StringBuilder sb=new StringBuilder(); String type=mcast_addr != null? mcast_addr instanceof Inet4Address? "IPv4" : "IPv6" : "n/a"; sb.append("could not bind to ").append(mcast_addr).append(" (").append(type).append(" address)") .append("; make sure your mcast_addr is of the same type as the preferred IP stack (IPv4 or IPv6)") .append(" by checking the value of the system properties java.net.preferIPv4Stack and java.net.preferIPv6Addresses.") .append("\nWill ignore mcast_addr, but this may lead to cross talking " + "(see http://www.jboss.org/community/docs/DOC-9469 for details). ") .append("\nException was: ").append(ex); log.warn(sb.toString()); } } if(retval == null) retval=factory.createMulticastSocket(service_name,port); return retval; }
public void start() throws IOException { // https://jira.jboss.org/jira/browse/JGRP-777 - this doesn't work on MacOS, and we don't have // cross talking on Windows anyway, so we just do it for Linux. (How about Solaris ?) // if(can_bind_to_mcast_addr) // diag_sock=Util.createMulticastSocket(getSocketFactory(), // Global.TP_DIAG_MCAST_SOCK, diagnostics_addr, diagnostics_port, log); //else diag_sock=socket_factory.createMulticastSocket("jgroups.tp.diag.mcast_sock", diagnostics_port); diag_sock.setTimeToLive(ttl); List<NetworkInterface> interfaces=bind_interfaces != null? bind_interfaces : Util.getAllAvailableInterfaces(); bindToInterfaces(interfaces, diag_sock); if(thread == null || !thread.isAlive()) { thread=thread_factory.newThread(this, THREAD_NAME); thread.setDaemon(true); thread.start(); } }
protected MulticastSocket createMulticastSocket(String service_name, int port) throws Exception { // Creates an *unbound* multicast socket (because SocketAddress is null) MulticastSocket retval=getSocketFactory().createMulticastSocket(service_name, null); // causes *no* binding ! if(bind_addr != null) setInterface(bind_addr, retval); retval.setReuseAddress(false); // so we get a conflict if binding to the same port and increment the port retval.bind(new InetSocketAddress(bind_addr, port)); return retval; }
private void createMulticastSocket(String serviceName, String bindingName) throws IOException { MulticastSocket socket1 = mock(MulticastSocket.class); MulticastSocket socket2 = mock(MulticastSocket.class); MulticastSocket socket3 = mock(MulticastSocket.class); SocketAddress address = new InetSocketAddress(InetAddress.getLocalHost(), 1); when(this.manager.createMulticastSocket(bindingName)).thenReturn(socket1); when(this.manager.createMulticastSocket(bindingName, new InetSocketAddress(1))).thenReturn(socket2); when(this.manager.createMulticastSocket(bindingName, address)).thenReturn(socket3); MulticastSocket result1 = this.subject.createMulticastSocket(serviceName); MulticastSocket result2 = this.subject.createMulticastSocket(serviceName, 1); MulticastSocket result3 = this.subject.createMulticastSocket(serviceName, address); assertSame(socket1, result1); assertSame(socket2, result2); assertSame(socket3, result3); }
mcast_sock=Util.createMulticastSocket(getSocketFactory(), "jgroups.mping.mcast_sock", mcast_addr, mcast_port, log); else mcast_sock=getSocketFactory().createMulticastSocket("jgroups.mping.mcast_sock", mcast_port);
mcast_sock=Util.createMulticastSocket(getSocketFactory(), "jgroups.udp.mcast_sock", mcast_group_addr, mcast_port, log); else mcast_sock=getSocketFactory().createMulticastSocket("jgroups.udp.mcast_sock", mcast_port);
@Override public MulticastSocket createMulticastSocket(String name, SocketAddress bindAddress) throws IOException { return this.register(this.factory.createMulticastSocket(name, bindAddress)); }
@Override public MulticastSocket createMulticastSocket(String name, int port) throws IOException { return this.register(this.factory.createMulticastSocket(name, port)); }
@Override public MulticastSocket createMulticastSocket(String name) throws IOException { return this.register(this.factory.createMulticastSocket(name)); }
@Override public MulticastSocket createMulticastSocket(String name, SocketAddress bindAddress) throws IOException { return this.register(this.factory.createMulticastSocket(name, bindAddress)); }
@Override public MulticastSocket createMulticastSocket(String name, int port) throws IOException { return this.register(this.factory.createMulticastSocket(name, port)); }
@Override public MulticastSocket createMulticastSocket(String name) throws IOException { return this.register(this.factory.createMulticastSocket(name)); }
public static MulticastSocket createMulticastSocket(SocketFactory factory,String service_name,InetAddress mcast_addr,int port,Log log) throws IOException { if(mcast_addr != null && !mcast_addr.isMulticastAddress()) throw new IllegalArgumentException("mcast_addr (" + mcast_addr + ") is not a valid multicast address"); SocketAddress saddr=new InetSocketAddress(mcast_addr,port); MulticastSocket retval=null; try { retval=factory.createMulticastSocket(service_name,saddr); } catch(IOException ex) { if(log != null && log.isWarnEnabled()) { StringBuilder sb=new StringBuilder(); String type=mcast_addr != null? mcast_addr instanceof Inet4Address? "IPv4" : "IPv6" : "n/a"; sb.append("could not bind to ").append(mcast_addr).append(" (").append(type).append(" address)") .append("; make sure your mcast_addr is of the same type as the preferred IP stack (IPv4 or IPv6)") .append(" by checking the value of the system properties java.net.preferIPv4Stack and java.net.preferIPv6Addresses.") .append("\nWill ignore mcast_addr, but this may lead to cross talking " + "(see http://www.jboss.org/community/docs/DOC-9469 for details). ") .append("\nException was: ").append(ex); log.warn(sb.toString()); } } if(retval == null) retval=factory.createMulticastSocket(service_name,port); return retval; }
public void start() throws IOException { // https://jira.jboss.org/jira/browse/JGRP-777 - this doesn't work on MacOS, and we don't have // cross talking on Windows anyway, so we just do it for Linux. (How about Solaris ?) // if(can_bind_to_mcast_addr) // diag_sock=Util.createMulticastSocket(getSocketFactory(), // Global.TP_DIAG_MCAST_SOCK, diagnostics_addr, diagnostics_port, log); //else diag_sock=socket_factory.createMulticastSocket("jgroups.tp.diag.mcast_sock", diagnostics_port); diag_sock.setTimeToLive(ttl); List<NetworkInterface> interfaces=bind_interfaces != null? bind_interfaces : Util.getAllAvailableInterfaces(); bindToInterfaces(interfaces, diag_sock); if(thread == null || !thread.isAlive()) { thread=thread_factory.newThread(this, THREAD_NAME); thread.setDaemon(true); thread.start(); } }
protected MulticastSocket createMulticastSocket(String service_name, int port) throws Exception { // Creates an *unbound* multicast socket (because SocketAddress is null) MulticastSocket retval=getSocketFactory().createMulticastSocket(service_name, null); // causes *no* binding ! if(bind_addr != null) setInterface(bind_addr, retval); retval.setReuseAddress(false); // so we get a conflict if binding to the same port and increment the port retval.bind(new InetSocketAddress(bind_addr, port)); return retval; }
mcast_sock=Util.createMulticastSocket(getSocketFactory(), "jgroups.mping.mcast_sock", mcast_addr, mcast_port, log); else mcast_sock=getSocketFactory().createMulticastSocket("jgroups.mping.mcast_sock", mcast_port);
@Test public void createMulticastSocket() throws IOException { MulticastSocket socket1 = new MulticastSocket(); MulticastSocket socket2 = new MulticastSocket(); MulticastSocket socket3 = new MulticastSocket(); SocketAddress address = new InetSocketAddress(InetAddress.getLocalHost(), 1); when(this.factory.createMulticastSocket("test")).thenReturn(socket1); when(this.factory.createMulticastSocket("test", 1)).thenReturn(socket2); when(this.factory.createMulticastSocket("test", address)).thenReturn(socket3); MulticastSocket result1 = this.subject.createMulticastSocket("test"); MulticastSocket result2 = this.subject.createMulticastSocket("test", 1); MulticastSocket result3 = this.subject.createMulticastSocket("test", address); verify(this.manager.getUnnamedRegistry()).registerSocket(socket1); verify(this.manager.getUnnamedRegistry()).registerSocket(socket2); verify(this.manager.getUnnamedRegistry()).registerSocket(socket3); assertSame(socket1, result1); assertSame(socket2, result2); assertSame(socket3, result3); }
mcast_sock=Util.createMulticastSocket(getSocketFactory(), "jgroups.udp.mcast_sock", mcast_group_addr, mcast_port, log); else mcast_sock=getSocketFactory().createMulticastSocket("jgroups.udp.mcast_sock", mcast_port);