Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Вниз

Сетевые компоненты в Delphi7   Найти похожие ветки 

 
*partizan* ©   (2004-01-27 19:28) [0]

Приветсвую Вас Мастера!
Ситуация следующая:
Дипломка: "Сетевой сканер"
Собираюсь писать на Delphi7, но как глянул сколько там сетевых компонентов, так на месте и растерялся...
Сетевых прог мы раньше не писали...
Подскажите хотя бы для начала, какие компоненты нужно использовать для скана сетки и какой с кем взаимодейсвует?
Буду очень признателен...


 
mntek ©   (2004-01-28 01:39) [1]

что нужно? - какие компы в сети? -тогда смотри:
if GetSystemMetrics(SM_NETWORK) and $01 = $01 then  
   ShowMessage("Computer is attached to a network!")  
 else  
   ShowMessage("Computer is not attached to a network!");  
end;  -подключен ли комп к сетке;

unit FindComp;  
interface  
uses  
Windows, Classes;  
function FindComputers: DWORD;  
var  
Computers: TStringList;  
implementation  
uses  
SysUtils;  
const  
MaxEntries = 250;  
function FindComputers: DWORD;  
var  
EnumWorkGroupHandle, EnumComputerHandle: THandle;  
EnumError: DWORD;  
Network: TNetResource;  
WorkGroupEntries, ComputerEntries: DWORD;  
EnumWorkGroupBuffer, EnumComputerBuffer: array[1..MaxEntries] of TNetResource;  
EnumBufferLength: DWORD;  
I, J: DWORD;  
begin  
Computers.Clear;  
FillChar(Network, SizeOf(Network), 0);  
with Network do  
begin  
  dwScope := RESOURCE_GLOBALNET;  
  dwType := RESOURCETYPE_ANY;  
  dwUsage := RESOURCEUSAGE_CONTAINER;  
end;  
EnumError := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, @Network, EnumWorkGroupHandle);  
if EnumError = NO_ERROR then  
begin  
  WorkGroupEntries := MaxEntries;  
  EnumBufferLength := SizeOf(EnumWorkGroupBuffer);  
  EnumError := WNetEnumResource(EnumWorkGroupHandle, WorkGroupEntries, @EnumWorkGroupBuffer, EnumBufferLength);  
  if EnumError = NO_ERROR then  
  begin  
    for I := 1 to WorkGroupEntries do  
    begin  
      EnumError := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, @EnumWorkGroupBuffer[I], EnumComputerHandle);  
      if EnumError = NO_ERROR then  
      begin  
        ComputerEntries := MaxEntries;  
        EnumBufferLength := SizeOf(EnumComputerBuffer);  
        EnumError := WNetEnumResource(EnumComputerHandle, ComputerEntries, @EnumComputerBuffer, EnumBufferLength);  
        if EnumError = NO_ERROR then  
          for J := 1 to ComputerEntries do  
            Computers.Add(Copy(EnumComputerBuffer[J].lpRemoteName, 3, Length(EnumComputerBuffer[J].lpRemoteName) - 2));  
        WNetCloseEnum(EnumComputerHandle);  
      end;  
    end;  
  end;  
  WNetCloseEnum(EnumWorkGroupHandle);  
end;  
if EnumError = ERROR_NO_MORE_ITEMS then  
  EnumError := NO_ERROR;  
Result := EnumError;  
end;  
initialization  
Computers := TStringList.Create;  
finalization  
Computers.Free;  
end. - ищет все компы в сети;


 
Erazzer   (2004-01-28 01:52) [2]

Используй Indy - это ОДНОЗНАЧНО ;)))
На Indy ты легко межешь сделать многопоточный сканер, т.к. инди само (или сама) по себе поддерживет много поточность, и вообще я ссчитаю, что Indy это мощное средство, я на нём даже proxy сервер сделал!


 
mntek ©   (2004-01-28 01:54) [3]

тогда уж лучше com+ или вообще .NET:))


 
Erazzer   (2004-01-28 01:59) [4]

Тогда уж лучше FreeBSD ;)))


 
mntek ©   (2004-01-28 02:00) [5]

вообще да:))И не delphi явно:))



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.035 c
14-1078551328
Maestro
2004-03-06 08:35
2004.04.04
Формат числа


14-1078735421
ИМХО
2004-03-08 11:43
2004.04.04
Когда начался бардак???


6-1075289378
Zelius
2004-01-28 14:29
2004.04.04
Глюк в инди при работе с потоками?


3-1078215389
denmin
2004-03-02 11:16
2004.04.04
Проблема с ADOTable


1-1079507677
joper
2004-03-17 10:14
2004.04.04
Использование классов в делфи





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский