code: protected void setRemoteSocketAddress(final SocketAddress newRemoteSocketAddress) {
  		synchronized(remoteSocketAddressLock) {
  			final SocketAddress oldRemoteSocketAddress = this.remoteSocketAddress;
  			if(!newRemoteSocketAddress.equals(oldRemoteSocketAddress)) {
  				this.remoteSocketAddress = newRemoteSocketAddress;
  				listenerManager.enqueueEvent(
  					new ConcurrentListenerManager.Event<SocketListener>() {
  						@Override
  						public Runnable createCall(final SocketListener listener) {
  							return new Runnable() {
  								@Override
  								public void run() {
  									listener.onRemoteSocketAddressChange(
  										AbstractSocket.this,
  										oldRemoteSocketAddress,
  										newRemoteSocketAddress
  									);
  								}
  							};
  						}
  					}
  				);
  			}
  		}
  	}
docs: Sets the most recently seen remote address.
  If the provided value is different than the previous, will notify all listeners.