@Override
	public void start() throws Exception {
		datagramSocket = Util.createDatagramSocket(getSocketFactory(),
				"jgroups.cloudping.datagramSocket", getBindAddr(),
				this.datagramSocketPort);
		if (super.isSendOnAllInterfaces()
				|| (super.getSendInterfaces() != null && !super
						.getSendInterfaces().isEmpty())) {
			List<NetworkInterface> interfaces;
			NetworkInterface intf;
			if (super.getSendInterfaces() != null)
				interfaces = super.getSendInterfaces();
			else
				interfaces = getNetworkInterfaceList();
			datagramSockets = new CopyOnWriteArrayList<DatagramSocket>();
			for (Iterator<NetworkInterface> it = interfaces.iterator(); it
					.hasNext();) {
				intf = it.next();
				for (InetAddress inetAddress : getInetAddresseList(intf)) {
					datagramSockets.add(Util.createDatagramSocket(
							getSocketFactory(),
							"jgroups.cloudping.datagramSocket", inetAddress,
							datagramSocketPort));
				}
			}
		}

		super.start();
	}