![]() |
![]() |
![]() |
![]() |
|
Vedere de ansamblu | Meniul DHTML-JavaScript | |
![]() |
|
|
Verifica fisier cu ActiveX | Meniul DHTML-JavaScript | |
![]() |
|
|
Motorul de scanare a retelei | Ping cu ActiveX din C# (ASP.NET) | |
![]() |
||
Autocomplete cu AJAX (XmlHttpRequest) |
Explicatii:
Site-ul permite interogarea bazei de date ce contine toate fisierele share-ate in LAN. Dupa ce s-a realizat o cautare, fiecare fisier in parte poate fi verificat daca este sau nu Online.
Baza de date este umpluta folosind o aplicatie de scanare.
Intai in motorul de scanare, thread-ul de cautare a calculatoarelor ia IP-urile (din lista de IP-uri, la care se stie tiparul de alocare) la rand si face ping. Daca i se raspunde la ping, insereaza IP-ul in lista de IP-uri valide.
Threadul de scanare a folderelor share-ate ia cate un IP din lista si cauta share-urile. Fiecare folder gasit este introdus in lista de Foldere valide. Daca in lista de Foldere exista mai mult de 10 intrari, threadul de scanare a IP-urilor sta si asteapta.
Threadul de cautare in foldere ia cate un folder din lista, il sterge din baza de date iar apoi il parcurge recursiv si introduce in baza de date subfolderele si fisierele.
Scanarea se face o data la 6 ore, folosind facilitatea Scheduled Tasks din Windows.
Site-ul permite interogarea bazei de date. Se poate cauta dupa cuvinte (toate cuvintele sau oricare din ele). Se poate cauta dupa tipul de fisier. Sau dupa extensii custom. Se poate cauta intr-un interval de marime. Cum baza de date retine fisierele intalnite in ultimele 3 zile, se poate cauta intr-un interval maxim de disponibilitate.
Toate acestea fiind posibile, exista in meniu o lista preselectii care completeaza automat formularul si il trimite serverului. Preselectiile sunt: Filme, Videoclipuri, Concerte, Melodii si Imagini de CD.
Pentru ca fisierele sunt retinute pana al 3 zile, utilizatorul are posibilitatea sa interogheze fiecare fisier in parte sa vada daca este sau nu disponibil in acel moment. Acest lucru este realizat cu un control ActiveX Automation, accesibil din C# .Net si care face ping la IP-ul respectiv. Daca ping-ul raspunde in mai putin de 1,5 secunde, calculatorul este marcat ca pornit si se trece la verificarea disponibilitatii fisierului. Folosind un truc de HTML/Javascript, utilizatorul vede un iframe de asteptare pana se termina cautarea fisierului. Trucul este ca browserul asteapta terminarea raspunsului de la pagina, iar pagina nu-i "da drumu" pana nu termina.
Limbaj:
Aplicatia a fost realizata in limbajul C# folosind ASP.NET
si Visual Studio .Net 2003. Baza de date este tinuta de
un server Sql Server 2000. Motorul de
scanare si aplicatia ActiveX Automation pentru ping sunt
realizate in VisualC++ 6 cu MFC.
Baza de date are urmatoarele tabele:
Folder
Fisier Parere Tips MaximFolder |
![]() |
"Momente de programare:"
//
PingActiveX.odl : type library source for PingActiveX.exe [ uuid(B1B3D37C-3236-44F9-86A6-BE5841375966), version(1.0) ]
// Primary dispatch interface for
CPingActiveXDoc [ uuid(8521F96C-6626-4101-9BD4-4A8063605D10) ]
methods: };
// Class information for
CPingActiveXDoc //{{AFX_APPEND_ODL}} |
Trucul cu iframe-ul de asteptare: <SCRIPT
language="javascript"> |