2016-02-11 3 views
3

Я использовал для приложения привязку приложений к Delphi, и я обнаружил, что это кажется ошибкой. Попытка подключения двух приложений в одной сети на двух ПК с несколькими intefaces (адаптеры VirtualBox или VMware) не работает. Я попытался использовать целевой параметр в AutoConnect или DiscoverManagers, но они не могли соединиться или подключиться. Кажется, что адаптер в TTetheringManager привязан к неправильному сетевому адаптеру, и клиент не может открыть этот менеджер. Есть идеи?. Я использую Delphi Seattle.Delphi tethering с несколькими сетевыми адаптерами

ответ

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; 

Итак, я установил свойство АдресСервера перед тем, чтобы включить TetheringManager.

Я надеюсь помочь.

Смежные вопросы