code: protected void handleTCPSrvDeReg(SrvDeReg srvDeReg, Socket socket)
      {
          try
          {
              boolean update = srvDeReg.isUpdating();
              ServiceInfo givenService = ServiceInfo.from(srvDeReg);
              ServiceInfoCache.Result<ServiceInfo> result = uncacheService(givenService, update);
              forwardDeregistration(givenService, result.getPrevious(), result.getCurrent(), update);
              tcpSrvAck.perform(socket, srvDeReg, SLPError.NO_ERROR);
          }
          catch (ServiceLocationException x)
          {
              tcpSrvAck.perform(socket, srvDeReg, x.getSLPError());
          }
      }
docs: Handles a unicast TCP SrvDeReg message arrived to this service agent.
  <br />
  This service agent will reply with an acknowledge containing the result of the deregistration.
  
  @param srvDeReg the SrvDeReg message to handle
  @param socket   the socket connected to the client where to write the reply