public void run() {
		try {
			this.ds = createDatagramSocket();
			this.shutdown = false;
		} catch (final SocketException se) {
			return;
		} catch (final UnknownHostException uhe) {
			return;
		}

		final byte[] receiveData = new byte[SyslogConstants.SYSLOG_BUFFER_SIZE];

		while(!this.shutdown) {
			try {
				final DatagramPacket dp = new DatagramPacket(receiveData,receiveData.length);
				this.ds.receive(dp);

				final SyslogServerEventIF event = createEvent(this.getConfig(),receiveData,dp.getLength(),dp.getAddress());
				final List<SyslogServerEventHandlerIF> list = this.syslogServerConfig.getEventHandlers();

				for(int i=0; i<list.size(); i++) {
					final SyslogServerEventHandlerIF eventHandler = list.get(i);
					eventHandler.event(this,event);
				}
			} catch (final IOException ioe) {
				//
			}
		}
	}