Serwer terminali Winflector - alternatywa dla aplikacji Zdalny Pulpit, Citrix XenApp

Czy wiesz...

... jak zmienić język serwera Winflector na polski?

Serwer Winflector może wyświetlać wszystkie napisy i komunikaty w języku polskim. Językiem domyślnym jest angielski, ale można to w prosty sposób zmienić. Wystarczy uruchomić serwer, wybrać opcję Preferences, następnie kliknąć prawym klawiszem myszy na belce okna programu zarządzającego i z dostępnych języków (Lanuage) wybrać Polski zamiast English. Zobacz:

 

... jak używać procedur API Winflectora do transmisji plików?

Dzisiaj coś dla programistów aplikacji - jako wstęp do bardziej zaawansowanych metod RPC - korzystanie z procedur dodatkowych Winflectora. Do czego mogą się przydać? Na przykład mogą przekazać informacje z klienta, takie jak: adres IP klienta, katalog roboczy programu klienta czy system operacyjny. Można też, co przydatne, przesłać pliki z klienta na serwer i w drugą stronę.

Jak to zrobić?
Oczywiście za pomocą wywołania procedur API. W przypadku przesyłania plików (tak jak i przy wywołaniu procedur RPC) aplikacja przekaże klientowi (wfc), że ma coś dla niej zrobić, a następnie przesłać wynik. Oto prosty przykład przesyłania pliku z klienta do aplikacji na serwerze.

Żeby użyć procedur API potrzebny jest kod aplikacji. Dla uproszczenia założymy, że aplikacja jest napisana w C++.

Odbędzie się to następująco:

  1. Aplikacja (która wykonuje się na serwerze) wyśle za pomocą interfejsu grtmapi do klienta wfc żądanie przesłania pliku "przeslij_ten.txt" i zapisania go na serwerze pod nazwą "od_klienta_z_IP.txt".
  2. Klient wykonujący się na stacji roboczej użytkownika odbierze to żądanie i je obsłuży.
  3. Obsługa żądania przesyłania plików nie wymaga pisania własnych procedur po stronie klienta, dlatego programista ma mniej pracy.

Co zatem należy dodać do kodu aplikacji?

  • inicjalizację interfejsu TApiInitialize()
  • odczytanie IP klienta funkcją TApiGetRemoteIPAddr(), ponieważ chcemy aby w nazwie pliku przesłanego z klienta znalazło się jego IP
  • wywołanie funkcji pobierającej plik z klienta TApiGetFileFromTerminal

Oto kod, który dokładamy do naszej aplikacji C++:

#include "gtrmapi.h"
int GetTerminalFile()
{
	int aires, ftres;
	unsigned ipAddr;
        WCHAR destFileName[60];
        REMFILEERROR rerr;
	
	// Initialize base API functions
	aires = TApiInitialize();
	if( aires != TAPI_SUCCESS )
	{
		switch( aires )
		{
		case TAPI_NOCNETLIB:
			printf( "Application running in non-terminal mode\n");
			break;
		default:
			printf("Cannot initialize API\n");
			break;
		}
		return 1;	// error
	}
	ipAddr = TApiGetRemoteIPAddr();
	wsprintf(destFileName, L"od_klienta_z_%d.%d.%d.%d.txt",(ipAddr&0xFF000000)>>24,(ipAddr&0xFF0000)>>16,(ipAddr&0xFF00)>>8,(ipAddr&0xFF));
	ftres = TApiGetFileFromTerminal( destFileName, L"przeslij_ten.txt", &rerr, TAPI_F_FILEOVERWRITE );
        if( ftres != TAPI_SUCCESS )
	{
		switch( ftres )
		{
		case TAPI_NOTCONN:
			printf( "No connection to terminal\n");
			break;
		case TAPI_BADPARAMS:
			printf( "Invalid function parameters\n");
			break;
		case TAPI_SYSERR:
			printf( "System error. Error number from server: %d. Error number from terminal: %d.\n", rerr.lastSrvSysError, rerr.lastTrmSysError);
			break;
		default:
			printf("Other error, transferred bytes: %u\n", rerr.nbytes);
			break;
		}
		return 1;	// error
	}
	return 0; // file transferred successfully
}

Do konsolidacji programu (link) trzeba dołożyć gtrmapi.lib. I to jest najprostsza metoda skorzystania z API Winflectora.

W podobny sposób korzysta się z procedur RPC - pracy programistycznej jest wtedy więcej, gdyż trzeba napisać kod obsługujący wywołanie procedury po stronie klienta. Do czego można użyć RPC? Na przykład do tego, by sprawdzić odcisk palca użytkownika siedzącego przed zdalnym komputerem. Trudno żeby zrobiła to aplikacja, która wykonuje się przecież na serwerze, nie ma żadnego czytnika linii papilarnych, ani siedzącego przed nią użytkownika. Trzeba zatem, aby aplikacja (która jest na serwerze) zleciła to zadanie zdalnemu komputerowi.

Ciąg dalszy nastąpi.


... że możesz zobaczyć jaki ruch sieciowy generuje Twój program?

W prosty sposób możesz przekonać się ile danych przesyła przez sieć Twój program uruchomiony przez serwer Winflector. Uruchom klienta Winflector (wfc), podaj parametry logowania i aplikacji, a na zakładce Debug zaznacz opcję 'Pokaż okno ze statystykami ruchu sieciowego'. Zobacz:

Oprócz okien aplikacji pojawi się dodatkowe okienko z pożytecznymi informacjami na temat ruchu sieciowego. Popracuj trochę z aplikacją i zobacz jak zmieniają się dane wyświetlane w okienku. W ten sposób możesz sprawdzić ile KB danych zostanie przesłanych w celu wykonania poszczególnych operacji. Najbardziej przydatne z wyświetlanych informacji to:

  • Rcv blocks -  ile pakietów zostało przesłanych z aplikacji do klienta wfc
  • Rcv Network - ile kilobajtów (KB) zostało przesłanych z aplikacji do klienta wfc
  • Snd blocks - ile pakietów przesłanych z klienta wfc do aplikacji
  • Snd Network - ile kilobajtów (KB) zostało przesłanych z klienta wfc do aplikacji
W naszym przykładzie aplikacja (która działa na serwerze) przesłała do klienta wfc 22 pakiety z danymi. Przesłane dane to łącznie 41 KB. Klient wysłał do aplikacji 64 pakiety o łącznej długości 2KB. W sumie w obydwie strony zostało przesłanych 43 KB (kóre potem były rozkompresowane, ale to już zupełnie inna historia). Okienko ze statystykami sieciowymi można w każdej chwili zamknąć i kontynuować pracę bez zbierania i wyświetlania tych informacji.

 

... jak utworzyć na pulpicie skrót do używanego programu zdalnego?

To bardzo proste. Przypuśćmy że najczęściej korzystasz z udostępnionego na serwerze programu paint.exe. Zamiast za każdym razem podawać wszystkie parametry programu w kliencie Winflector (wfc) utwórz od razu skrót na pulpicie w 3 prostych krokach:

  1. zdefiniuj adres serwera, który udostępnia aplikację
  2. zdefiniuj nazwę aplikacji i katalog roboczy
  3. na zakładce Inne naciśnij guzik Utwórz

To wszystko! Ikona ze skrótem do programu została utworzona na Twoim pulpicie. Teraz wystarczy kliknąć w ten skrót, nie trzeba za każdym razem prowadzać nazwy aplikacji, adresesu serwera czy wszystkich parametrów szczególnych. Nawet hasło użytkownika może zostać zapamiętane, jeśli zaznaczyłeś to w zakładce Login. Wtedy uruchamiając aplikację ze skrótu nie trzeba podawać już żadnych danych. Wszystkie te informacje mogą zostać dodatkowo zaszyfrowane, tak aby nikt nieuprawniony nie mógł ich przeczytać - w tym celu zaznacz opcję Szyfruj przed naciśnięciem guzika Utwórz.

Zobacz kolejne kroki prowadzące do utworzenia skrótu:

 

... jak przełączyć język klienta wfc na polski?

Klient wfc (cienki klient) może wyświetlać wszystkie napisy i komunikaty w języku polskim. Językiem domyślnym jest angielski, ale można to w prosty sposób zmienić. Wystarczy uruchomić wfc.exe, następnie wybrać zakładkę Other i w sekcji Language po lewej stronie zamiast English wybrać Polski. Każde kolejne uruchomienie klienta wfc będzie w języku polskim.  Zobacz: