public void startListening()
	throws IOException
	{
		synchronized( generalSync ) {
			if( Thread.currentThread() == thread ) throw new IllegalStateException( NetUtil.getResourceString( "errNotInThisThread" ));

			if( isListening && ((thread == null) || !thread.isAlive()) ) {
				isListening		= false;
			}
			if( !isListening ) {
				if( !isConnected() ) connect();
				isListening		= true;
				thread			= new Thread( this, "OSCReceiver" );
				thread.setDaemon( true );
				thread.start();
			}
		}
	}