Delphi与多个网络适配器共享

时间:2016-02-11 11:18:33

标签: delphi tethering

我一直在使用Delphi的应用程序,我发现了它似乎是一个bug。尝试在具有多个接口(VirtualBox或VMware适配器)的两台PC上连接同一网络中的两个应用程序不起作用。我尝试在AutoConnect或DiscoverManagers中使用target参数,但它们无法配对或连接。似乎TTetheringManager中的适配器绑定到不正确的网络适配器,客户端无法发现此管理器。有任何想法吗?。我正在使用Delphi Seattle。

1 个答案:

答案 0 :(得分:0)

我知道这不是最好的解决方案,但对我有用。

我在TTetheringManager类中创建了一个新属性:

...

private

FServerAddress: string;

...

public

property ServerAddress: string read FServerAddress write FServerAddress;

...

然后,我改变了以下方法:

function TTetheringManagerCommunicationThread.CreateManagerInfo(const AIdentifier, AName, AText,

  AConnectionString: string; AVersion: Integer): TTetheringManagerInfo;

begin
  Result.ManagerIdentifier := AIdentifier;
  Result.ManagerName := AName;
  Result.ManagerText := AText;
  Result.ConnectionString := AConnectionString;
  Result.Version := AVersion;

  if (Trim(FAdapter.Manager.FServerAddress) <> '') then
    begin
      FAdapter.FAdapterConnectionString := Copy(FAdapter.FAdapterConnectionString, Pos('$', FAdapter.FAdapterConnectionString), Length(FAdapter.FAdapterConnectionString));
      FAdapter.FAdapterConnectionString := FAdapter.Manager.ServerAddress + FAdapter.FAdapterConnectionString;
    end;

  Result.Adapter := FAdapter;
end;

因此,我先设置属性ServerAddress以启用TetheringManager。

我希望能帮到你。