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