code: def adapter_add_nio_binding(self, adapter_number, nio):
          
  
          try:
              adapter = self._ethernet_adapters[adapter_number]
          except IndexError:
              raise VMwareError("Adapter {adapter_number} doesn't exist on VMware VM '{name}'".format(name=self.name,
                                                                                                      adapter_number=adapter_number))
  
          self._read_vmx_file()
          # check if trying to connect to a nat, bridged or host-only adapter
          if self._get_vmx_setting("ethernet{}.present".format(adapter_number), "TRUE"):
              # check for the connection type
              connection_type = "ethernet{}.connectiontype".format(adapter_number)
              if connection_type in self._vmx_pairs and self._vmx_pairs[connection_type] in ("nat", "bridged", "hostonly"):
                  if not self._use_any_adapter:
                      raise VMwareError("Attachment '{attachment}' is already configured on network adapter {adapter_number}. "
                                        "Please remove it or allow VMware VM '{name}' to use any adapter.".format(attachment=self._vmx_pairs[connection_type],
                                                                                                                  adapter_number=adapter_number,
                                                                                                                  name=self.name))
                  elif (yield from self.is_running()):
                      raise VMwareError("Attachment '{attachment}' is configured on network adapter {adapter_number}. "
                                        "Please stop VMware VM '{name}' to link to this adapter and allow GNS3 to change the attachment type.".format(attachment=self._vmx_pairs[connection_type],
                                                                                                                                                      adapter_number=adapter_number,
                                                                                                                                                      name=self.name))
  
          adapter.add_nio(0, nio)
          if self._started and self._ubridge_hypervisor:
              yield from self._add_ubridge_connection(nio, adapter_number)
  
          log.info("VMware VM '{name}' [{id}]: {nio} added to adapter {adapter_number}".format(name=self.name,
                                                                                               id=self.id,
                                                                                               nio=nio,
                                                                                               adapter_number=adapter_number))
docs: Adds an adapter NIO binding.
  
          :param adapter_number: adapter number
          :param nio: NIO instance to add to the slot/port